for of是ES6标准,遍历 key value.
1.数组遍历 for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值
var arr1=[1,2,4,5];
for(var v in arr1){
console.log(v) // 0 1 2 3
//可通过arr1[v] 获取值
console.log(arr1[v])//1 2 4 5
};
for(var v for arr1){
console.log(v)//1 2 4 5
};复制代码
2.对象遍历
var obj = {name:1,age:20};
for(var v in obj){
console.log(v) // name age
console.log(obj[v]) //1 20
};
for of 不能直接遍历对象,但可以遍历MAp Set对象
// Map 可以接受一个数组作为参数
var m = new Map([['name','a'],['age',10],['a',3]]);
//keys() value() entries()
var arr=[['name','a'],['age',10],['a',3]]
var m = new Map(arr);
for(let [k,v] of m){
console.log(v)
};
for(let k of m.keys()){
console.log(k)
};
for(let v of m.values()){
console.log(v)
};
复制代码
3. 字符串
var str = 'hello wenwen';
for(var v in str){
console.log(v); //索引 0-11
console.log(str[v])// hello wenwen
};
for(var v in str){
console.log(v); // hello wenwen
};
复制代码
for of 是最简洁、最直接的遍历数组元素的语法,也支持Map Set 对象遍历