for...of
可以迭代数组、类数组以及任何可以迭代的对象(maps
、sets
、DOM集合
)
1.遍历数组
let myArray = [{
code: 1
}, {
code: 2
}];
for (let value of myArray) {
console.log(value.code);
}
2.支持解构
let myArray = [{
code: 1
}, {
code: 2
}];
for (let {
code
} of myArray) {
console.log(code);
}
3.支持字符串迭代
const message = 'jsscript';
for (const character of message) {
console.log(character);
}
4.支持Map和Set的遍历
// Map 和 Set 迭代
const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
for (const [key, value] of myMap) {
console.log(key, value);
}
const keys = new Set(['key1', 'key2', 'key3', 'key4']);
for (value of keys) {
console.log(value);
}
5.支持迭代普通的js对象
const Worker = {
name: 'liuxing',
job: 'engineer'
};
for (const [prop, value] of Object.entries(Worker)) {
console.log(prop, value);
}
// Object.entries(Worker ) 返回一个键和值的元组数组:[[''name','liuxing'],['job','engineer']]。
//然后,使用 for...of 循环遍历数组,并将每个元组解构为 const [prop,value]。