3

https://github.com/square/crossfilter/wiki/API-Referenceおよびhttp://square.github.io/crossfilter/crossfilter.jsを参照してください。

おそらく、ライブラリはデータを迅速に処理するのに非常に優れています。それをテストするために、まず、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、生成したすべての値は明らかにフロートであるため、他の何かが問題を引き起こしていると想定しています。ヒントはありますか?

4

1 に答える 1

9

実際に合計を計算する必要があると思います:

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

データセットのどの行にも「合計」プロパティがないため、渡す関数.dimension()は を返します。undefined

于 2013-09-05T15:12:04.603 に答える