Map 是 ES6 中新增的一种数据结构,与 Set 一起添加,其实功能都差不多。我就只列举了 Map 的遍历方式,一通百通,其自身内部带有的的方法看书中介绍即可,并不复杂,比起 C++ 的 STL 好理解多了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var map = new Map([
['age', 19],
['height', 180]
]);

for (let key of map.keys()) {
console.log(key);
}

for (let value of map.values()) {
console.log(value);
}

for (let item of map.entries()) {
console.log(`${ item[0] }: ${ item[1] }`);
}

for (let [key, value] of map.entries()) {
console.log(`${ key }: ${ value }`);
}

for (let [key, value] of map) {
console.log(`${ key }: ${ value }`);
}

map.forEach((key, value, map) => {
console.log(`${ key }: ${ value }`);
});

// forEach 绑定 this
var reporter = {
report(key, value) {
console.log(`${ key }: ${ value } by reporter object.`);
}
}

map.forEach(function (key, value) {
// 使用箭头函数会导致这个 this 是 undefined
this.report(key, value);
}, reporter)