JS之Map的基本使用

news2024/11/15 19:47:50

一、Map的基本API

  • 创建: const map = new Map()
  • 插入:map.set("name", "郑建")
  • 读取:map.get("name")
  • 判断:map.has("name")
  • 删除:map.delete
  • 大小:map.size
  • 遍历:for of / forEach

二、创建

 const map = new Map()

三、插入

const map = new Map()
map.set("name", "郑建")  // 字符串作为key

const functionKey = function() {}
map.set(functionKey, "函数做key")  // 函数做为key

const objKey = {}
map.set(objKey, "对象做key")  // 对象做为key


 结果:

四、读取

map.get("name")  // "郑建"
map.get(functionKey)  // "函数做key"
map.get(objKey)  // "对象做key"

五、判断

map.has("name")

结果:

 

六、大小

map.size

结果:

 七、删除

map.delete("name")

结果:

八、遍历

1、for of

for (const it of map) {
    console.log(it)
}

结果:

 2、forEach

map.forEach((value, key) => {
    console.log(value, key)
})

结果:

 九、Map和Object之间的选择

提问:既然有了Object为什么还要弄一个Map呢?他们是不是有病?

从四个方向去选择:

内存占用: 不同浏览器有明显差异,但给定固定大小内存,Map能比Object多存储50%的键值对。

                    遇到大体量结构化数据,选择Map

插入性能 Map性能稍微好一点,特别涉及大量插入操作,尤为明显,选择Map

查找性能性能相当,但在少量“键/值对”的情况下,浏览器引擎会对Object有相关的优化策略,选择Object

删除性能:Map性能优势明显,而且利用delete删除Object属性仅仅只是解除绑定,内存没有释放,并不是真正的删除,而且会破环V8引擎中的线性结构快属性,极大降低访问性能,毫无疑问选择Map

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webhub123 设计师好用的笔刷纹理网站收录​

整理了一些可以免费下载的好用的笔刷和纹理资源网站,收录到 webhub123 设计师好用的笔刷纹理网站收录​http://www.webhub123.com/#/home/detail?projectHashid31645930&ownerUserid21336964 收录效果如下,每个网站显示为一张图片,点击…

【Python基础入门学习】Python基础语法学习

基础认识 1. 注释2. 变量2.1 变量命名规则2.2 变量的类型2.3 不同类型之间的运算规则2.4 变量的输入和输出2.4.1 print 函数使用2.4.2 input 函数使用 2.5 变量的类型转换 3. 分支语句3.1 判断的定义3.2 if 判断语句基本语法3.3 else 处理条件不满足的情况3.4 逻辑运算3.5 if 的…

小红书数据分析:这个夏天,“围炉冰茶”继续刷屏

导语 去年秋冬开始爆火的“围炉煮茶”,果集千瓜数据显示:近90天来,笔记预估阅读总数达1,038.83万,同比下降80.67%,笔记互动总量61.78万,下降高达76.85%。 图 | 果集千瓜数据 受到时令的影响,围…

算法 - 随机 Coding 刷算法合集 [1]

目录 一.数组中重复的数字 [集合] 1.题目要求 2.题目思路 3.题目实现 二.二维数组中的查找 [数组] 1.题目要求 2.题目思路 3.题目实现 三.替换空格 [字符串] 1.题目要求 2.题目思路 3.题目实现 四.从尾到头打印链表 [链表] 1.题目要求 2.题目思路 3.题目实现 …

电脑技巧:分享浏览器5个小技巧,太实用了

大家在日常办公当中,浏览器可以说占用非常大的比重,比如搜个素材、图片、文档等等,今天就来给大家分享5个浏览器使用的小技巧,希望对大家能有所帮助! 1、浏览器常用快捷键梳理 其实Web浏览器快捷键很多,但…

MySQL_第14章_视图

第14章_视图 1. 常见的数据库对象 对象描述表(TABLE) 表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录 数据字典 就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护, 程序…

Java多线程基础-6:线程安全问题及解决措施,synchronized关键字与volatile关键字

线程安全问题是多线程编程中最典型的一类问题之一。如果多线程环境下代码运行的结果是符合我们预期的,即该结果正是在单线程环境中应该出现的结果,则说这个程序是线程安全的。 通俗来说,线程不安全指的就是某一代码在多线程环境下执行会出现b…

【边缘计算】登临(Goldwasser-UL64)BW-BR2边缘设备配置指南

目录 开箱配置激活SDK环境测试cuda兼容性 开箱配置 更改盒子root用户密码: sudo passwd root(密码同为root) 切换到root用户身份: su root查看ssh的状态,没有返回说明没有启动 sudo ps -e|grep ssh此时说明ssh服务已启动。 更改ssh配置文…

Android MediaCodec dump MP4实践小结

1.应用背景 在一些集成了算法SDK的Android APP中,这些APP是取出摄像头实时帧,然后调用视觉算法SDK并产生检测结果。而当测试人员发现某一场景下算法效果欠佳时,需要从摄像头实时原始数据帧dump一段视频(mp4格式)&#…

【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示

效果图如下: 首先,让我们先来说说DS18B20集成电路。 • DS18B20是一款采用OneWire通讯协议的集成电路,因此只需要一条线就可以与微控制器通讯。它不需要额外的电源,但是也有外部电源输入端口。 • OneWire设备具有64位的ROM代码。如我们之前所说,这64位的前8位是家…

HDCTF

Welcome To HDCTF 2023 看源码找到game.js 找到这一串 放到控制台运行即可 SearchMaster 题目让post提交一个data 随便传一个在页面执行了 当传入{时他会报错,看报错信息发现 Smarty,猜测Smarty的ssti,数据发送到前端 用{if}标签即可 {…

CHAPTER 5: 《DESIGN CONSISTENT HASHING》 第5章 《设计一致的哈希》

CHAPTER 5: DESIGN CONSISTENT HASHING 为了实现水平扩展,有效且均匀地分发请求/数据是很重要的在服务器上。一致散列是实现这一目标的常用技术。但首先,让我们深入了解一下这个问题。 重组问题 如果您有n个缓存服务器,那么平衡负载的常用…

PCB射频电路四大基础特性及设计技巧

由于射频(RF)电路为分布参数电路,在电路的实际工作中容易产生趋肤效应和耦合效应,所以在实际的PCB设计中,会发现电路中的干扰辐射难以控制。 如:数字电路和模拟电路之间相互干扰、供电电源的噪声干扰、地线不合理带来的干扰等问题…

catkin_make_workspace

ERROR1 : CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message): Project ‘cv_bridge’ specifies ‘/usr/include/opencv’ as an include dir, which is not found. It does neither exist as an absolute directory nor in ‘${{pr…

Vue-列表过滤

列表过滤 对已知的列表进行数据过滤(根据输入框里面的内容进行数据过滤) 编写案例 通过案例来演示说明 效果就是这样的 输入框是模糊查询 想要实现功能,其实就两大步,1获取输入框内容 2根据输入内容进行数据过滤 绑定收集数据 我们可以使用v-model去…

6.3 收敛性与稳定性

6.3.1 收敛性 数值计算方法的收敛性是指,当取步长趋近于零时,数值解趋近于精确解的速度。一般来说,数值计算方法的收敛性是判断其优劣的重要指标之一。 数值计算方法的收敛性可以通过数学分析来研究,一般需要对数值解和精确解之…

08-Node.js—nvm

目录 1、介绍2、使用2.1 下载安装2.2 常用命令2.2.1 nvm list available2.2.2 nvm list2.2.3 nvm install 18.12.12.2.4 nvm install latest2.2.5 nvm uninstall 18.12.12.2.6 nvm use 18.12.1 参考 1、介绍 nvm 全称 Node Version Manager 顾名思义它是用来管理 node 版本的工…

系统集成项目管理工程师——考试重点(三)项目管理一般知识

1.项目定义: 为达到特定的目的,使用一定资源,在确定的期间内,为特定发起人提供独特的产品、服务或成果而进行的一系列相互关联的活动的集合。 2.项目目标: 成果性目标:项目产品本身 约束性目标&…

频繁GC引起卡顿问题排查与解决

一 问题描述 今天测试组更新测试环境后发现系统卡顿,无法办理任何业务,重启系统后问题仍然存在。已经到项目后期,迭代测试时间十分紧张。此问题直接影响到项目进度 二 排查过程 1.执行命令top Linux 下常用top命令显示系统中各个进程的资…

PID原理

PID控制器(比例-积分-微分控制器),由比例单元(P)、积分单元(I)和微分单元(D)组成。 可以通过调整这三个单元的增益Kp,Ki和Kd来调定其特性,PID控制…