2

当我想loop通过一个array并在每个后面添加一个字符串element时,

我可以

for(var x in array){
 array[x] += "string";  
}

或者

for(var x, y = array.length; x<y; x++){
 array[x] += "string";  
}

但是这两者在性能方面有什么区别for loops


通常,for...in速度较慢,因为它作为普通对象访问数组,而经典for循环不需要整理所有属性array来执行其任务。

请记住,现代浏览器对数组进行了特殊优化,但如果您将它们视为普通对象,则无法利用它们。

4

2 回答 2

3

建议您不要使用for ... in迭代数组。

为什么在数组迭代中使用“for...in”是个坏主意?

您应该for ... in只使用迭代对象属性。

于 2012-06-08T12:16:52.077 回答
1

通常,for...in速度较慢,因为它作为普通对象访问数组,而经典for循环不需要整理所有属性array来执行其任务。

请记住,现代浏览器对数组进行了特殊优化,但如果您将它们视为普通对象,则无法利用它们。

于 2012-06-08T12:15:06.863 回答