码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaScript -- Map对象及常用方法介绍


    文章目录

    • Map
      • 1 Map介绍
      • 2 创建一个Map
      • 3 常用方法介绍
      • 4 将Map转换为数组
      • 5 从数组构建Map
      • 6 遍历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

  • 相关阅读:
    IDOC-外围系统发送客户银行数据,SAP生成入站IDOC
    【数据库问题】删除数据库失败,提示:there is 1 other session using the database
    Linux系统中Makefile的基本实现
    Mybiosource丨Mybiosource重组表皮葡萄球菌磷酸结合蛋白 pstS
    整型int的拼接和拆分
    【毕业设计】基于单片机的MP3音乐播放器设计与实现 - stm32 物联网 c51
    yolov8在设置amp=False 之后map 训练依旧为0 解决办法
    unittest自动化框架
    图片编辑软件怎样加文字内容?图片添加文字方法大分享
    KO88冲销内部订单结算的操作参考
  • 原文地址:https://blog.csdn.net/qq_46311811/article/details/128207599
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号