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

回答

2

沒有傷害。只要確保在測試之前是否在使用之前定義了該值。

+0

...只要您在訪問數組時可以處理NULL值 – eckes 2010-12-07 08:26:13

1

不是。大多數JavaScript實現將分配兩個插槽(即陣列將分配相同數量的內存,就好像它只有兩個索引爲01的元素)。

2

考慮使用「鍵/值陣列」這樣的事情工作:

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

有了這個你失去檢測數組長度(arr.length是不確定的)的能力,並且可以使用不同的迭代它一種循環,但如果你不需要任何那些更好的方法。

4

取決於實施。此:

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

會給鉻[1,2](在沒有更多的時間排序,然後用兩個元件密集陣列),但在Firefox的allocation size overflow錯誤。