map数据结构

数据结构—Map集合 数据结构,hashMap 阅读详情

一、概述

  1. map数据类型是Es6新增的一种常用的引用数据类型
  2. 他与Array和Object不同,他是键值对集合

二、map的使用

1. 定义

先定义再赋值

let mapInfo = new Map()
mapInfo.set(name,"小靳靳")
定义时就赋值
// new Map([ [key,value] , [key,value] ]) kay是属性,value是属性值
let mapInfo  = new Map([ [name,'小靳靳'], ["age",'25'],["sex","男"]])  

2. set()

mapInfo.set("name",'我修改了')

 注 : 连续设置就会被覆盖掉之前设置的内容

3. get()

通过这个方法来获取对应的值,如果获取不存在的属性,返回undefined。

4. has()

查询键在实例中是否存在,返回的是布尔值

5. delete()

删除map实例中的键,删除不存在的键返回false

6. clear()

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.clear() //清空map实例的数据

7. forEach()

将map实例遍历,参数一:键值,参数二:键名,参数三:map实例

和数组的分开,map不是数组,他是Object类型

mapInfo instanceof Object //true

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.forEach((value,key,map)=>{
    console.log(value,key,map)
 //小靳靳,name,Map(3) {'name' => '小靳靳', 'age' => '25', 'sex' => '男'}
})

8. size属性

获取个数

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.size // 3

 三、map和Object区别

此次我们来详细的讲解一下两者的区别

首先先了解Object

  • 声明

Object也是我们接触js最常用的一种引用数据类型,可用于存键值对的集合 

let obj = {
    name : '小靳靳',
    age : '28',
    sex : '男'
}

 

 map 的声明 => new Map()


  • 两者的不同点
  • 键类型

Object  一般键的类型都是串,如果不是,也会转成串

const obj1 = {
	name: "小金金"
}
obj1["sex"] = "男"
obj1[[1, 2]] = 'arr' //会转成字符串
obj1[{"name" :'obj'}]  = 'obj' //特殊情况以[Object,Object]输出
obj1[1] = 1
obj1['2'] = 2  //不管是number还是字符串,最后都会转成字符串
console.log(obj1) 
//{1: 1, 2: 2, name: '小金金', sex: '男', 1,2: 'arr', [object Object]: 'obj'}

Map 键可以根据自己的类型进行定义,包括对象\数组\函数\等,他不会想上面进行类型转换

let map = new Map()
//key和value可以是function\obj\string\number\array
map.set(66,66)
map.set("str","字符串")
map.set([1,2],"arr")
map.set([2,3],[2,3])
map.set({"name":"小靳靳"},"obj")
map.set({"name":"小靳靳1"},{"name":"小靳靳1"})
map.set(function foo(){},{"name":"小靳靳1"})

  •  键顺序

Object  键是无顺序的,不会按我们所定义的顺序进行存储

map  键是有顺序的,我们怎么定义的,他会按照我们定义的顺序输出

//Object
const obj = {
    4:4,
    '3':'3',
    2:2,
    1:1,
}
console.log(obj,Object.keys(obj))
//{1: 1, 2: 2, 3: '3', 4: 4}
//['1', '2', '3', '4']

//map
let map = new Map()
map.set(4,4)
map.set(3,3)
map.set(2,2)
map.set(1,1)
console.log(map,map.keys())

// Map(4) {4 => 4, 3 => 3, 2 => 2, 1 => 1}
// [[Entries]]
// 0: {4 => 4}
// 1: {3 => 3}
// 2: {2 => 2}
// 3: {1 => 1}
// size: 4
// [[Prototype]]: Map
  •  键的个数

Object  个数我们需要通过Object自带的key方法或者for in来计算

Map  有自己的size属性,直接去访问

//Object
const obj = {"name" : "小靳靳","age":"25","sex":"男"}
console.log(Object.keys(obj).length) // 3
let count = 0
for (const i in obj) {
  num++
}
console.log(num) // 3

//map
const map = new Map()
map.set("name","小靳靳")
map.set("age", "25")
map.set("sex", "男")
console.log(map.size) // 3

 

汇川AM系列ethercat控制伺服的使用说明(含转矩模式) 本文以一个实际例子,介绍ethercat伺服驱动器的工作原理,以及在汇川AM系列PLC中,如何点动、定位、速度、转矩控制ethercat伺服。 阅读详情

相关推荐

Cadence IC618/Spectre231安装避坑指南:详解License配置、环境变量隔离与依赖检查

本文详细介绍了Cadence IC618/Spectre231的安装与配置避坑指南,包括许可证系统精妙控制、环境隔离模块化实践、依赖管理进阶技巧以及长期维护的黄金法则。通过实战案例和解决方案,帮助工程师构建稳定可靠的EDA工作环境,提升芯片设计效率。

weixin_28683065的博客 460

数据结构之Map基础入门与详解

# 【1】概念介绍 Map用于保存具有**映射关系**的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value。key和value都可以是任何引用类型的数据。`Map的Key值为set,不允许重复,即同一个Map对象的任何两个key通过equals方法比较结果总是返回false。` **关于Map,我们要从代码复用的角度去理解** java是先实现了Map,然后通过包装了一个所有value都为null的Map就实现了Set集合。 Map的这些实现类

小小默:进无止境 1万+

ROS 2实战:用MoveIt Task Constructor让机械臂完成抓取任务(附避坑指南)

本文详细介绍了如何在ROS 2环境中使用MoveIt Task Constructor框架,为Franka Panda机械臂构建一个完整的拾取放置任务流水线。通过分解任务阶段、配置规划器并处理实际部署中的常见问题,帮助开发者从基础运动规划升级到可靠的多步骤任务编排,并附有核心避坑指南。

vvv99的博客 507

Map数据结构详解

Map数据结构详解:Map的创建、与普通数据结构的区别、Map的常用方法、Map参数、Map的遍历方法、Map的数据结构转换。

分享互联网的有趣知识~ 5332

3DSlicer冠脉分割实战:从DICOM导入到三维重建的完整流程(附常见问题解决)

本文详细介绍了使用3DSlicer进行冠脉分割的完整流程,从DICOM数据导入到三维重建,涵盖环境配置、视图优化、心脏区域分割及冠脉精细分割等关键步骤。针对常见问题提供实用解决方案,帮助医学影像从业者高效完成心血管结构分析,提升诊断准确性。

weixin_29271053的博客 628

[A-21]ARMv8/v9-SMMU系统架构和功能概述

本文简述了SMMU的系统架构和核心功能

基层架构师的分享 1724

JavaScript Map数据类型

详细描述了 JavaScript 的 Map 数据类型

Jackson_Mseven的博客 4297

立创开源TinyAWG:基于ZYNQ7010的35MHz带宽200MSa/s任意波形发生器设计与实现

本文详细解析了立创开源TinyAWG的设计与实现,这是一款基于ZYNQ7010芯片的低成本高性能任意波形发生器。项目实现了35MHz带宽和200MSa/s采样率,核心采用ARM+FPGA协同架构,FPGA负责高速DDS信号生成,ARM运行Linux并搭载LVGL图形界面。文章涵盖了硬件选型、电路设计、软件逻辑及性能测试,为复刻和学习ZYNQ系统设计、高速DAC应用提供了完整参考。

weixin_42576467的博客 434

数据结构之Map

一、Map的基本概念 Map是一个接口类,该类没有继承自Collection,该类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复. 二、<K,V>结构的键值对 Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式。 方法名 作用 K getKey() 返回entry中的key

weixin_45984250的博客 2280

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

如何使用DPABI 进行核磁共振数据结果统计分析?

下面总结使用DPABI 的统计模块对MRI 图像进行统计分析的基本方法,并与SPM 的统计结果进行简单的对比。DPABI 的统计模块包含了常用的统计模型和多重比较校正方法、在控制协变量上也非常方便。 DPABI 进行结果统计分析一、下载和安装 DPABI二、下载样例数据三、统计模型和多重比较校正四、DPABI 的统计主界面五、DPABI 的可视化主界面六、查看统计结果 一、下载和安装 DPABI 下载 DPABI 包,解压后将文件夹和子文件夹加入MATLAB 的搜索路径即可。 具体安装方法详见 dpabi

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 1万+

Map数据结构

m1.forEach((item,index)=>{ //item 是值 index是键(索引)[{a:1},"大连"] //{Object => "大连"}console.log(m2.get(o));//[ { a: 1 }, '大连' ]//[ { a: 1 }, '大连' ]} //kerwin 100 大连。m2.set(o,"大连")

2401_88900643的博客 1440

SAP BOM反查(可追溯值至顶级)

功能介绍:BOM层数在7层以内的(含7层)的物料,执行后都可以查询到顶级的BOM,逻辑很简单,后期如BOM层数增加,可自行增加查询逻辑。 *&---------------------------------------------------------------------* *& Report ZBOM_CHECK *&---------------------...

SAP阿狸 6061

数据结构之map

而pair<int,int>定义了kv也就是键值对的数据类型是pair,C++中的pair类型会将两个不同的值组合成一个单元,常用于存储键值对,创建pair的时候,也必须提供两个类型名,比如上面的pair对象,两个值的类型都是int,在使用时通过first和second成员来访问pair中的第一个和第二个元素,它的first成员存储键,而second成员存储值。的key值存储是无序的,底层实现为哈希表,查找速度更快,如果不需要排序而只是快速查找键对应的值,可以考虑使用。常量通常用大写字母表示。

m0_53506460的博客 725

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Map 数据结构

Set 是一种叫【字典(是一些元素的集合,以 [ 键,值 ] 的形式储存)】的数据结构。keys() 返回键名。values() 返回键值。使用运算扩展符 【...】

随手记 724

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据结构Map

map是ES提供的一种字典数据结构 字典结构——用来存储不重复key的hash结构。不同于集合(set)的是,字典使用的是键值对的形式来存储数据 JavaScript对象(object:{})只能用字符串来当key,这对使用带来了不便,为了解决这个问题,ES6提供了map数据结构。其类似于对象,也是键值对的集合,但“key”的范围不仅限于字符串,而是各种类型的值都可以当做key。也就是说,ob...

CodeP1G的博客 866

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据结构-Map

map 是一种典型的字典类型的数据结构 字典: 是用来存储不重复key的Hash结构(对象就是字典类型的数据结构)。不同于集合(Set)的是,字典用的是[键,值]的形式来储存数据的。 JS的对象(Object:{})只能用字符串当作键。这给他的使用带来的很大的限制 为了解决这个问题,ES6提供了Map数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键,也就是说,Object结构提供了“字符串-值”的对应,Map结构提供了“值-值”的对应,是一种更完善

qq_44277696的博客 4253

map,js Map数据结构,Map数据结构,es6中的Map数据结构,js中的hash表达

map,js Map数据结构,Map数据结构,es6中的Map数据结构

imkaifan的博客 1674

【数据结构】Map与Set结构详解

本文从底层Map的内外双接口结构开始分析,从其结构出发讲解了Map具体是如何管理存储对象的,接着深入Map的存储结构,讲解了Map的基本操作节点-包装对象节点的存储特点 以及节点的数据组织结构-数组/红黑树,讲解了Set复用Map的关系、整理了Map与Set常用方法的归纳使用

Brookty的博客 2474

golang数据结构map

golang 数据结构之map 介绍 map是hash table数据结构,它支持快速的查找、增加和删除。 定义和声明 map[keyType]ValueType 其中 keyType 必须是可比较的数据类型 (golang官网说明),比如 布尔类型(bool)、数值类型(int, uint, float等)、string、指针(pointer)、通道(channel)、接口(interface)或者包含以上基础类型的 struct、arrays。 但是不支持 切片(slices)、map、函数(func

weixin_44527226的博客 396

【ES6】Map数据结构

文章目录一、Map的含义和基本用法二、实例的属性和操作方法三、遍历方法 一、Map的含义和基本用法        JavaScript 的对象( Object )本质上是键值对的集合( Hash 结构),但是只能用字符串作为键。这给它的使用带来了很大的限制。为了解决这个问题,提供了Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。    .

weixin_60297362的博客 2942

ES6之Map数据结构

TOC/TOCES6(ECMAScript 2015)引入了两种新的数据结构:Set和Map,它们为JavaScript开发者提供了更强大的数据处理能力。

BradenHan的专栏 2112

java map 数据结构_Map数据结构以及Map相关方法的底层实现原理

Map数据结构Map也是容器的一种,那么我们以前看到的没一种容器,都有响应的数据结构,例如数组是一组连续的存储空间,链表是无序的,包含指针域和值域的容器。这里我们要介绍的Map拥有自己独特的数据结构,Map的每一个元素叫做键值对,所谓键值对其实就是 “键” 和 “值” 组成的一对Map的每一个元素由两部分组成,分别是key(键)和 value(值)容器是用来装东西的,那么容器取得操作中肯定就少不...

weixin_28675661的博客 799

数据结构之详解【Map和Set】

1.Map是一个接口,不能直接实例化对象(要实例化对象可以实现类TreeMap或HashMap) 2.Map中存放键值对的key是唯一的,value是可以重复一样的 3.Map中key可以全部分离开,存储在Set中去进行访问(因为key不可以重复) 4.Map中value可以全部分离开,存储在Collection的任何一个子集合中(value可以重复) 5.Map中key不能直接修改,如果必须修改就要先删除key,在进行重新插入 6.HashMap的存储 是根据底层的哈希函数和key,去找对应的位...

m0_58761900的博客 2307

数据结构————map,set详解

详解map,set

2301_79083481的博客 3048
上一篇: git操作知识总结
下一篇: css伪类选择器
JSON_JSJ
博客等级 码龄5年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_JSJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值