for in 和 for of 都是可以用来遍历数组的
var arr1 = ['a','b','c','d','e','f'];
for(let i in arr1){
console.log(i);// 0,1,2,3,4,5
}
for(let i of arr1 ){
console.log(i);//a,b,c,d,e,f
}
从我们输出内容我们可以简单的理解为:for in
是遍历索引(键名),而for of
是遍历键值。
for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name
使用for in
遍历数组可能会存在以下问题:
- index索引为字符串型数字,不能直接进行几何运算
- 遍历顺序有可能不是按照实际数组的内部顺序
- 使用for in会遍历数组所有的可枚举属性,包括原型。
所以for in
更适合遍历对象,不要使用for in遍历数组。
var arr2 = {1:'a',2:'b',3:'c',4:'d',5:'e',6:'f'};
for(let i in arr2){
console.log();//1,2,3,4,5,6
}