人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

for/of与Set和Map

ES6内置的Set(集合)和Map(映射)类是可迭代的。在使用for/of迭代时,循环体对集合中的每个元素都会运行一次。可以使用类似下面的代码打印出一个文本字符串中的唯一单词:

let text = "Na na na na na na na na Batman!";
let wordSet = new Set(text.split(" "));
let unique = [];
for(let word of wordSet) {
    unique.push(word);
}
unique // => ["Na", "na", "Batman!"]

Map则比较有意思,因为Map对象的迭代器并不迭代Map键或Map值,而是迭代键/值对。每次迭代,迭代器都会返回一个数组,其第一个元素时键,第二个元素时对应的值。给出一个Map m,可以像下面这样迭代和解构其键/值对:

let m = new Map([[1, "one"]]);
for(let [key, value] of m) {
    key    // => 1
    value  // => "one"
}

 

posted @ 2022-03-07 09:53  0a  阅读(83)  评论(0)    收藏  举报