码农知识堂 - 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

  • 相关阅读:
    串口协议、I2C协议、SPI协议总结
    Spring Boot Spring Cloud
    单独编译某个驱动模块
    数模国赛:四川赛区即将线上答辩
    一篇文章带你入门HBase
    TouchGFX界面开发 | 项目代码结构分析
    23种设计模式(二十一)备忘录模式(阁瑞钛伦特软件-九耶实训)
    从图文展示到以云为核,第五代验证码独有的策略情报能力
    【RN】为项目使用React Navigation中的navigator
    Spring Boot TestEntityManager
  • 原文地址:https://blog.csdn.net/qq_46311811/article/details/128207599
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号