定义
for...of
语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of
循环,以替代 for...in
和 forEach()
,并支持新的迭代协议。for...of
允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等
语法
for (variable of iterable) {
statement
}
variable:每个迭代的属性值被分配给该变量。
iterable:一个具有可枚举属性并且可以迭代的对象。
Arrays(数组)
Arrays(数组)就是类列表(list-like)对象。数组原型上有各种方法,允许对其进行操作,比如修改和遍历等操作。下面是在一个数组上进行的 for...of
操作:
const iterable = ['yyn', 'lz', 'xk'];
for(const value of iterable){
console.log(value); //yyn lz xk
}
Maps(映射)
Map 对象就是保存 key-value(键值) 对。对象和原始值可以用作 key(键)或 value(值)。Map 对象根据其插入方式迭代元素。换句话说, for...of
循环将为每次迭代返回一个 key-value(键值) 数组。
const iterable = new Map([['one', 1], ['two', 2]]);
for(const [key,value] of iterable){
console.log(key,value); //one 1 two 2
console.log(`key:${key} and value:${value}}`); //key:one and value:1 key:two and value:2
}
Json和map格式的对比
map的效率和灵活性更好
先来写一个JSO