原生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)
})

 

posted @ 2021-12-15 15:18  邢韬  阅读(31)  评论(0编辑  收藏  举报