首页 > 其他分享 >map数据类型,与object 类型的区别

map数据类型,与object 类型的区别

时间:2023-02-17 15:26:00浏览次数:36  
标签:map Object 键名 Map object 数据类型 key 单元

https://www.cnblogs.com/ht955/p/14170885.html https://www.cnblogs.com/Hijacku/p/16457600.html MAP数据类型是一个类似于对象的数据类型,大型项目中会经常使用。                     通过 构造函数来定义MAP数据类型             const map = new Map()             如果需要在定义的同时进行赋值,赋值的参数必须是二维数组形式             二维数组,统一都是两个单元,第一个单元是Map的键名,第二个单元是Map的数值             二维数组,第一个单元,也就是键名不能重复的             [ [键名1,数值1] , [键名2,数值2] , [键名3,数值3] , [键名4,数值4] , [键名5,数值5] ]                             操作语法:                 1, set() 新增Map数据类型单元                    参数1:新增单元的键名                    参数2:新增单元的键值                 2, get() 获取单元数据                    参数1:获取单元的键名执行结果是对应的数据数值                 3, delete() 删除单元                    参数1:删除单元的键名                                 4, clear()  清除单元                 5, forEach() 循环遍历                              参数设定方式与数组参数方式相同                              参数1:单元数据                              参数2:单元键名                              参数3:map本身                 6, has()     判断是否是map单元的键名                            const map = new Map( [['name1','张三'],['name2','李四'],['name3','王五']] );         // 新增单元         map.set('name4','赵六');         // 删除单元         // map.delete('name2');         // 清除所有单元         // map.clear();         // 循环遍历单元         map.forEach((item,key)=>{             console.log(item,key)         })         // 判断是否是map单元的键名         console.log( map.has('name3') );         console.log(map);         console.log(map.get('name3')); 

 

Object 中的 key 只能是 Sting 类型的,如果将非String类型的当做key, 会转成String。Object[2] 和 Object['2'] 获取到同一个value。 

Object中没有直接的api去返回Object的 key的数目,也就是键值对的个数。但是Map可以直接通过 Map.size 获取键值对的个数。 

Object 中 key的顺序是无序的,不会按照添加的顺序返回。 

对象可以序列化  JSON.stringify(), map 默认不允许序列化, 需要借助 Array.from(map)再去序列化。  

Object 默认不具备iterator (迭代器)特性(用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。),直接 for of Object 会报错。 Map.value(keys|entries) 等方法返回值都具有iterator特性。 

Map 中的键值对中的 key 中的类型是严格区分的 ,也就是 使用 === 来判断是不是同一个地址。

Map中的key是有序的,会按照定义时的顺序进行输出!!!

 比如:

let  maps = new Map(); 

maps.set(2, '我的key是 数字2');

maps.set('2', '我的key是字符2');  

但是 有一个特例需要注意就是 NaN;

我们知道 NaN 与任何的类型的值比较 返回的都是false, 包括本身。 但是在map中;

NaN 当做key的时候,set多个NaN 却会被当做同一个key;

例如:

maps.set(NaN,1);

maps.set(NaN,2); 

=> 

可以看到 后面的赋值会覆盖前面的。 

总结:

标签:map,Object,键名,Map,object,数据类型,key,单元
From: https://www.cnblogs.com/Dongmy/p/17130246.html

相关文章

  • ES的mapping
    转https://blog.csdn.net/ZYC88888/article/details/830274581简介ES的mapping非常类似于静态语言中的数据类型:声明一个变量为int类型的变量,以后这个变量都只......
  • ebpf的perf buffer机制(二) BPF_MAP_TYPE_PERF_EVENT_ARRAY map的创建
    一perfbuffer专用map简介在ebpf的perfbuffer机制(一)中简单介绍了在使用perfbuffer时会先定义一个BPF_MAP_TYPE_PERF_EVENT_ARRAY类型的map,如下所示:/*BPFperfbuf......
  • 高级数据类型
    枚举类型TypeWeekDays=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);VarWeekDay:WeekDays;--------------------------------------------或者直......
  • ChIP-seq 分析:Mapped 数据可视化(4)
    1.Mappedreads现在我们有了BAM文件的索引,我们可以使用idxstatsBam()函数检索和绘制映射读取的数量。mappedReads<-idxstatsBam("SR_Myc_Mel_rep1.bam")TotalMap......
  • java数据类型转换
    title:java基本数据类型转换time:2023-1-15-16-32-6900当把一种基本数据类型的值赋给另一种变量时,就涉及到数据转换。将这些类型按精读由低到高排列:byteshortchar......
  • 2.15数据类型和常用方法
      字符串string 用来记录人的名字,家庭住址,性别等描述性质的状态定义方式name='abc'列表list中括号括起来,内部可以存放多个元素,元素与元素之间使用逗号隔开,可......
  • HashMap
    JDK1.8之前HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8以后在解决哈希冲突时有了较大的变化,当......
  • Map
    Map(用key来搜索的专家):使用键值对(key-value)存储key是无序的、不可重复的,value是无序的、可重复的,每个键最多映射到一个值。......
  • python map/reduce
      描述map() 会根据提供的函数对指定序列做映射。第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。......
  • 数据类型及常用方法
    目录引入一、整型int二、浮点型float三、字符串类型str四、列表list五、字典dict六、布尔值bool七、元组tuple八、集合set引入我们学习变量是为了让计算机能......