2

私は大きな配列(たとえば500エントリ)を持っていますが、ほとんどの値はNullです。持つ代わりに配列を表すにはどうすればよい[null, null ... 3, null, null, ...]ですか?

配列はプロットのためにhighchartsに渡されます。Highchartsは配列内のすべての要素のポイントをプロットするので、実際にはそれらは必要ありませんnull

4

1 に答える 1

4

あなたarray[200]が何かに設定した場合、それはJavaScriptがあなたの後ろにやって来て、をarray[0]通過するようなものではありませんarray[199]。配列は自動的にスパースになります。

それで、初期化されていない要素を要求すると、undefined代わりに戻ってくるという問題がありnullますか?それとも他に問題がありますか?

undefinedvsの場合は、初期化した後に、大きなリテラルBLOBに配置する代わりに、ループを使用してsをnull追加するだけです。null

for (var i=0; i<array.length; ++i) { 
    if (typeof(array[i]) === 'undefined') { 
        array[i] = null; 
    } 
}

初期化したものを超えたい場合は、必要な最大インデックスnullに置き換えarray.lengthます(+1、またはに変更します<<=

于 2012-05-29T22:15:09.013 に答える