首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript for...in与

JavaScript for...in与
EN

Stack Overflow用户
提问于 2008-10-28 10:42:10
回答 22查看 291.8K关注 0票数 467

你认为for...in和for循环有很大的区别吗?你更喜欢使用哪种"for“?为什么?

假设我们有一个关联数组的数组:

代码语言:javascript
运行
复制
var myArray = [{'key': 'value'}, {'key': 'value1'}];

所以我们可以迭代:

代码语言:javascript
运行
复制
for (var i = 0; i < myArray.length; i++)

和:

代码语言:javascript
运行
复制
for (var i in myArray)

我看不出有什么大的不同。是否存在任何性能问题?

EN

Stack Overflow用户

发布于 2016-11-21 23:12:15

两者之间有一个重要的区别。for-in遍历对象的属性,因此当情况是一个数组时,它不仅会遍历它的元素,还会遍历它拥有的"remove“函数。

代码语言:javascript
运行
复制
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(;;)语句。

票数 0
EN
查看全部 22 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/242841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档