for…of
创建一个循环来迭代可迭代的对象。
在 ES6 中引入的 for…of 循环,以替代 for…in 和 forEach() ,并支持新的迭代协议。
for…of 允许遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合),Arguments,Generator 等可迭代的数据结构等。
遍历数组
var arr = [
{ name:'nick', age:18 },
{ name:'freddy', age:24 },
{ name:'mike', age:26 },
{ name:'james', age:34 }
];
for(var item of arr) {
console.log(item.name, item.age);
}
遍历set集合
const iterable = new Set([1, 1, 2, 2, 1]);
for (const value of iterable) {
console.log(value);
}
// set集合不允许重复的值
遍历字符串
const zxx = 'zxx';
for (const value of zxx) {
console.log(value);
}
遍历arguments
function args() {
for (const arg of arguments) {
console.log(arg);
}
}
args('a', 'b', 'c');
遍历Map映射
const iterable = new Map([['one', 1], ['two', 2]]);
for (const [key, value] of iterable) {
console.log(`Key: ${key} and Value: ${value}`);
}
// Key: one and Value: 1
// Key: two and Value: 2
遍历Generators(生成器):生成器是一个函数,它可以退出函数,稍后重新进入函数。
function* generator(){
yield 1;
yield 2;
yield 3;
};
for (const g of generator()) {
console.log(g);
}
// 1
// 2
// 3