2010-12-07 24 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错误。