2010-12-07 2 views
1
var arr = []; 
arr[50] = 'foo'; 
arr[10000] = 'boo'; 

答えて

2

全く問題ありません。値を使用する前に値が定義されているかどうかをテストしていることを確認してください。

+0

...配列にアクセスするときにNULL値を処理できる限り – eckes

1

いいえ、ほとんどのJavaScript実装では2つのスロットが割り当てられます(つまり、配列には、インデックスが01の2つの要素しかない場合と同じ量のメモリが割り当てられます)。

2

このようなことのための「キー/値の配列」での作業を検討:

var arr = {}; 
arr[50] = 'foo'; 
arr[10000] = 'boo'; 

はこれを持つあなたは、配列の長さを検出する能力を失う(arr.lengthが不定となります)、あなたは別の使用して、それを繰り返すことができますあなたがそれらのIMOのいずれかを必要としない場合は、より良い方法です。

4

実装によって異なります。この:

arr=[] 
arr[1000]=1 
arr[1000000000]=2 
arr.sort() 

は(これ以上の時間に、2つの要素を持つ密な配列をソートする)Chromeで[1,2]を与えるが、Firefoxの上allocation size overflowエラーます。

関連する問題