2013-09-05 101 views
3

我在玩crossfilter.js,請參閱https://github.com/square/crossfilter/wiki/API-Referencehttp://square.github.io/crossfilter/crossfilter javascript超過最大調用堆棧大小,沒有南

據說圖書館很擅長處理數據。因此,爲了測試它,我首先創建一個隨機數組,一個大數字,一百萬行。

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) 

到目前爲止好,但是當我嘗試做一些基本的crossfilter事情時,事情變得非常錯誤。

df.dimension(function(d){ return d.total; }); 
RangeError: Maximum call stack size exceeded 

我讀過這個錯誤可以通過NaN值引起的,但我已經生成的所有值都明顯浮動,所以我假定別的東西造成的麻煩。任何提示?

+1

「總」屬性應該來自哪裏? Crossfilter文檔中的示例代碼涉及具有「全部」屬性的對象;你的物體沒有。 – Pointy

+1

也請考慮使用分號和'var'聲明:) – Pointy

+0

看起來像我盲目複製文檔。我沒有看到'total'是'd'的屬性,而不是函數。 – cantdutchthis

回答

8

我認爲你需要真正計算總:

df.dimension(function(o) { return o.a + o.b; }); 

你傳遞給.dimension()該函數返回undefined,因爲沒有你的數據集的行有一個「總」屬性。

相關問題