This answer说,在稀疏数组上迭代的最好方法是使用for X in Array
但是,当我尝试这样做时,我跳了一下,因为X的类型是一个字符串,而不是我所期望的整数索引。(一切都很好,直到我把它加到另一个整数中.)
var arr = [];
arr[10000] = "Hello";
var shifted = []
for (var x in arr)
shifted[10+x] = arr[x];“预期”:
shifted[10010] = "Hello实际
shifted["1010000"] = "Hello" 是否有更好的方法来使用索引来迭代稀疏数组,还是应该只在需要的地方使用Number(X)?
发布于 2013-12-02 11:22:50
这就是V8 (和其他JavaScript引擎)处理数组的方式:
V8使用两种不同的方法来处理数组:
资料来源: http://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/
当您使用稀疏数组时,键将转换为字符串,然后进行散列。如果您想要数字键:不要使用稀疏数组或手动将键转换为数字。
https://stackoverflow.com/questions/20326823
复制相似问题