先来看下结果
1.for in 对数组(Array)的遍历
2.for in 对对象(Object)的遍历
3.for of 对数组(Array)的遍历
4.for of 对对象(Object)的遍历
所以
for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象
for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法
不要用for-in去遍历数组,为什么?
综上所述:
for-in:遍历对象
for-of:遍历数组
for in 在遍历的时候tslint会要加一个判断,用下面这个就好
for (var key in myObject) {
if(myObject.hasOwnProperty(key)){
console.log(key);
}
}