for...in主要用于对数组和对象的属性进行遍历。for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
语法:for (variable in ) {...}
variable:每次迭代,一个不同的属性名将会赋予variable。
:可枚举属性被迭代的对象。
尽量不要使用for in语句遍历数组,主要有两个原因:
一、像其他人一样说,你可能会得到不在你的数组或从原型继承的键。因此,如果让我们说,一个库将一个属性添加到Array或 原型中:
Array.prototype.someProperty = true
你会得到它作为每个数组的一部分:
for(var item in [1,2,3]){
console.log(item) // will log 1,2,3 but also \"someProperty\"
}
您可以使用hasOwnProperty方法解决此问题:
var ary = [1,2,3];
for(var item in ary){
if(ary.hasOwnProperty(item)){
console.log(item) // will log only 1,2,3
}
}
但是对于使用for-in循环的任何对象进行迭代都是如此。
二、通常,数组中项目的顺序很重要,但是for-in循环不一定以正确的顺序进行迭代,这是因为它将数组视为对象,这是在JS中实现的方式,而不是作为数组。这似乎是一件小事,但它真的可以解决应用程序,很难调试。
继续阅读与本文标签相同的文章
-
健乐教学机器人可开展的教学实训内容
2026-05-14栏目: 教程
-
5G套餐曝光遭“吐槽”,iphone11受追捧,导致苹果11销量比较高
2026-05-14栏目: 教程
-
为什么修电脑的叫自己不要杀毒和清理垃圾?
2026-05-14栏目: 教程
-
当水乡建筑遇上机器人,成就乌镇又一网红景点
2026-05-14栏目: 教程
-
惊险!手刹失灵,郴州一货车开启“无人驾驶”模式……
2026-05-14栏目: 教程
