Open wujunchuan opened 7 years ago
今天遇到一个问题,就是因为for-in
循环把数组从原型继承来的方法也给遍历出来了,导致循环次数与预期循环次数不一致
解决办法就是用
for(var index = 0;index < record.length; index++){...}
代替原来的for-in
循环
为什么不用
for-of
,因为ES6才支持这个特性
很有用,感谢楼主
@wujunchuan 可以在for-in循环的时候添加 hasOwnProperty()方法来过滤掉非自有属性。
不如直接MDN搜索for...of,讲的很详细,以及迭代对象是什么?迭代协议是什么?如何创建迭代器
迭代器和for-of循环
最早的数组遍历方式
自从ES5发布以后,可以用内建的
forEach
来遍历数组当然你也可以使用
for
循环语法来遍历数组,那么你一定会想到for-in
这个方法是最简洁的,并且修复了
for-in
循环的所有缺点,与forEach()
不同的是,它可以正确的响应break,contine,return
语句不仅如此,
for-of
还可以支持大部分的类数组对象 注意:for-of
循环不支持普通对象,但是如果你想迭代一个对象的属性,可以使用for-in
循环(这也是它的本职工作)或者内建的Object.keys()方法