原生Map类
映射
映射可以理解为字典,不同于数组,允许使用任何值作为索引,映射的键是唯一的,若传入重复的键值对,会用新的值代替旧的值
创建映射
let m = new Map() let n = new Map([ // Map(2) { 'one' => 1, 'two' => 2 } ["one", 1], ["two", 2] ])
方法
n.size // 2 n.set("three", 3) n.set("A", "a").set("B", "b") // 可以链式调用 n.get("two") // 2 n.has("one") // true n.has("ten") // false n.delete("three") // 返回布尔值 m.clear() // 清空映射
迭代
map也是按照插入顺序进行迭代的
for(let i of n){ /* [ 'one', 1 ] [ 'two', 2 ] [ 'A', 'a' ] [ 'B', 'b' ] */ console.log(i) }
可以直接解构操作
for(let [k, v] of n){ console.log(k, v) }
也可直接使用keys(),values()和entries()方法
[...n.keys()];
[...n.values()];
[...n.entries()];
映射也实现了foreach()方法,参数为(value,key)
n.forEach(v, k =>{
console.log(k, v)
})