1. 使用for…in遍历数组 / 对象
var a=[1,2,3];
for(let i in a){
console.log(i);//0 1 2
console.log(a[i]);//1 2 3
}
遍历数组:结果是key,数组index
遍历对象:结果是key,对象的键
遍历字符串:结果是key,字符串的index(同数组)
2. 使用for…of遍历数组 / 对象
var a=[1,2,3];
for(let i of a){
console.log(i);//1 2 3
}
遍历数组:结果是value,数组项值
遍历对象:报错,for…of不能遍历对象,其实错误的原因也很简单,对象没有迭代器,所以不能使用for of 遍历。
那么,怎么遍历对象中的属性值呢?
//依然使用 for...in + obj[i],注意,不是 obj.i
for(let i in obj){
console.log(obj[i]);
}
遍历字符串:结果是value,字符串的值(同数组)
3. 总结
- for…of是在for…in之后推出的新特性,弥补for…in中的一些不足.
- JSON 数据的标的达方式是key:value
- for…in遍历出的结果是key
- for…of遍历出的结果是value
PS. v-for(value,index)-in === v-for(value,index)-of
<ul>
<li v-for="value in object"></li>
</ul>
<ul>
<li v-for="(value,index) in object"></li>
</ul>
<ul>
<li v-for="(value,key,index) in object"></li>
</ul>