• JavaScript -- Map对象及常用方法介绍


    Map

    1 Map介绍

    • Map用来存储键值对结构的数据**(key-value)**
    • Object中存储的数据就可以认为是一种键值对结构
    • Map和Object的主要区别:
      • Object中的属性名只能是字符串或符号,如果传递了一个其他类型的属性名,JS解释器会自动将其转换为字符串
      • Map中任何类型的值都可以成为数据的key
    const obj = {
        "name":"孙悟空",
        'age':18,
        [Symbol()]:"哈哈",
        [obj2]:"嘻嘻"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20221203134223010

    2 创建一个Map

    const map = new Map()
    
    map.set("name", "孙悟空")
    map.set(obj2, "呵呵")
    map.set(NaN, "哈哈哈")
    
    map.delete(NaN)
    // map.clear()
    
    console.log(map)
    console.log(map.get("name"))
    console.log(map.has("name"))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    image-20221203133950058

    3 常用方法介绍

    • map.size() 获取map中键值对的数量
    • map.set(key, value) 向map中添加键值对
    • map.get(key) 根据key获取值
    • map.delete(key) 删除指定数据
    • map.has(key) 检查map中是否包含指定键
    • map.clear() 删除全部的键值对
    • map.keys() 获取map的所有的key
    • map.values() 获取map的所有的value

    4 将Map转换为数组

    方法一:使用方法Array.from(map)

    const map = new Map()
    
    map.set("name", "孙悟空")
    map.set("age", 18)
    map.set({}, "呵呵")
    
    // 将map转换为数组
    const arr = Array.from(map) // [["name","孙悟空"],["age",18]]
    const arr = [...map]
    
    console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    image-20221203134706290

    方法二:使用解构

    推荐这种方法,写法更简便

    const map = new Map()
    
    map.set("name", "孙悟空")
    map.set("age", 18)
    map.set({}, "呵呵")
    
    // 将map转换为数组
    const arr = [...map]
    
    console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20221203134714506

    5 从数组构建Map

    const map2 = new Map([
        ["name", "猪八戒"],
        ["age", 18],
        [{}, () => {}],
    ])
    console.log(map2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20221203134819011

    6 遍历Map

    方法一:使用for-of

    const map = new Map()
    
    map.set("name", "孙悟空")
    map.set("age", 18)
    map.set({}, "呵呵")
    
    for (const [key, value] of map) {
        // const [key, value] = entry
        console.log(key, value)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    方法二:使用forEach

    const map = new Map()
    
    map.set("name", "孙悟空")
    map.set("age", 18)
    map.set({}, "呵呵")
    
    map.forEach((key, value)=>{
        console.log(key, value)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

  • 相关阅读:
    OpenAI开发者大会:定义未来AI的新功能、愿景和商业版图
    openresty ngx_lua请求响应
    【软考】11.6 系统转换/系统维护/系统评价
    SpringBean
    windows下好用的perl打包工具--Cava Packager
    flutter 递归
    玉米脱粒机设计全套
    简单大方的自我介绍 PPT 格式
    HMI-64-【多媒体】Ui全部制作完成
    【毕业设计】基于SSM的进存销管理系统 - spring mvc java web
  • 原文地址:https://blog.csdn.net/qq_46311811/article/details/128207599