首页>>新闻中心>>ES6学习方法

ES6 map数据结构

来源: 本站    发布时间: 2021-02-27 23:11    阅读次数:

   let m = new Map()
    let obj = {
        name : "一起设计吧"
    }
    m.set(obj, "design") //Map就是键值对的形式,key可以是任何类型的值
    console.log(m)
    console.log(m.get(obj)) // 获取对应键值的值 design
    console.log(m.has(obj)) // ture这里面查看这个键值有没有对应的值

    let map = new Map([
        ["name", "成都"],
        ["age", 19]
    ])
    console.log(map)
    console.log(map.size) // 2
    console.log(map.has("name")) //ture
    console.log(map.get("age"))
    map.set("address", "南充")
    //map.delete("name")
    console.log(map)
    // 遍历

    map.forEach((value, key) => {
        console.log(value + "---" + key)
    })
    for (let [key,value] of map){
        console.log(value + "---" + key)
    }
    for ( let  key of map.keys()) {
        console.log(key)
    }
    for (let value of map.values()){
        console.log(value)
    }
    for (let[key,value] of map.entries()) {
        console.log(value + "---" + key)
    }
    let weakMap = new WeakMap()
    let arr = [1]
    weakMap.set(arr,3) //WeakMap里面的 键值必须是引用数据类型及时数组和对象
    weakMap.set({name:"一起设计"}, "design")
    console.log(weakMap.get(arr)) //3
    console.log(weakMap.get([1]))  //undefined  主要原因是数组和对象都是引用数据类型,所以要变成变量才可以查找和获取
    console.log(weakMap.has(arr))
    //WeakMap不可遍历,不能size和clear 也是弱引用数据类型
    //WeakMap 结构可以防止内存泄漏
    let wm = new WeakMap()
    let elem = document.getElementsByTagName("h1")
    wm.set(elem, "info")  //这里面的引用次数不会增加
    console.log(wm.get(elem)) //
一起设计吧
上一篇: ES6 Set数据结构
下一篇: 模板字符串
BACK