for-in 和 for-of

2020-01-09  本文已影响0人  一座被占用

先来看下结果
1.for in 对数组(Array)的遍历

image.png

2.for in 对对象(Object)的遍历

image.png

3.for of 对数组(Array)的遍历

image.png

4.for of 对对象(Object)的遍历

image.png

所以
for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象
for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法

不要用for-in去遍历数组,为什么?


image.png

综上所述:
for-in:遍历对象
for-of:遍历数组

for in 在遍历的时候tslint会要加一个判断,用下面这个就好
for (var key in myObject) {
  if(myObject.hasOwnProperty(key)){
    console.log(key);
  }
}


image.png
上一篇 下一篇

猜你喜欢

热点阅读