crossfilter.js
으로 재생 중입니다. https://github.com/square/crossfilter/wiki/API-Reference 및 http://square.github.io/crossfilter/을 참조하십시오.Crossfilter javascript 최대 호출 스택 크기를 초과했습니다. 아니요
아마도 라이브러리는 데이터를 신속하게 처리 할 때 매우 뛰어납니다. 그래서 그것을 테스트하기 위해 먼저 100 만 개의 행을 가진 큰 숫자의 난수 배열을 만듭니다.
function create_random_json(){
result = []
for (var i = 1000000 - 1; i >= 0; i--) {
result.push({ 'a': Math.random() , 'b' : Math.random() * 5 })
}
return result
}
json_array = create_random_json()
df = crossfilter(json_array)
지금까지는 좋았지 만 기본 크로스 필터 작업을 시도 할 때 상황이 크게 잘못되었습니다.
df.dimension(function(d){ return d.total; });
RangeError: Maximum call stack size exceeded
이 오류가 NaN
값에 의해 발생 될 수 있음을 읽었습니다하지만 수레 내가 생성 한 모든 값은 분명히있다, 그래서 문제를 일으키는 다른 것을 가정하고있다. 어떤 힌트? 데이터 집합의 행의 아무도는 "총"속성이 없기 때문에 당신이 .dimension()
에 전달하는 기능이 undefined
을 반환
df.dimension(function(o) { return o.a + o.b; });
:
"total"속성은 어디에서 가져온 것입니까? Crossfilter 설명서의 샘플 코드에는 "총"속성이있는 객체가 포함됩니다. 당신의 물건은 그렇지 않습니다. – Pointy
또한 세미콜론과'var' 선언을 사용하는 것을 고려하십시오 :) – Pointy
나는 맹목적으로 문서를 복사 한 것 같습니다. 나는 '총'이 'd'의 속성이지 기능이 아니라는 것을 알지 못했다. – cantdutchthis