你认为for...in和for循环有很大的区别吗?你更喜欢使用哪种"for“?为什么?
假设我们有一个关联数组的数组:
var myArray = [{'key': 'value'}, {'key': 'value1'}];所以我们可以迭代:
for (var i = 0; i < myArray.length; i++)和:
for (var i in myArray)我看不出有什么大的不同。是否存在任何性能问题?
发布于 2016-11-21 23:12:15
两者之间有一个重要的区别。for-in遍历对象的属性,因此当情况是一个数组时,它不仅会遍历它的元素,还会遍历它拥有的"remove“函数。
for (var i = 0; i < myArray.length; i++) { 
    console.log(i) 
}
//Output
0
1
for (var i in myArray) { 
    console.log(i) 
} 
// Output
0 
1 
remove您可以使用带有if(myArray.hasOwnProperty(i))的for-in。尽管如此,在迭代数组时,我总是倾向于避免这种情况,只使用for(;;)语句。
https://stackoverflow.com/questions/242841
复制相似问题