当前位置:网站首页>ES6:Map
ES6:Map
2022-06-26 12:36:00 【HaanLen】
Map对象
1、Map 对象
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
2、Maps 和 Objects 的区别
- 一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。
- Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。
- Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。
- Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。
3、Map 中的 key
(1)key 是字符串
var myMap=new Map();
var kk='a string';
myMap.set(kk,"for a thing");
console.log(myMap.get(kk))//for a thing
console.log(myMap.get("a string"))//for a thing
(2)key 是对象
var myMap=new Map();
var keyObj = {
}
myMap.set(keyObj,"for a thing");
console.log(myMap.get(keyObj))//for a thing
console.log(myMap.get({
}))//undefined
(3)key 是函数
var myMap=new Map();
var keyFunc=function () {
}
myMap.set(keyFunc,"for a thing");
console.log(myMap.get(keyFunc))//for a thing
console.log(myMap.get(function(){
}))//undefined
(4)key 是 NaN
var myMap=new Map();
myMap.set(NaN,"for a thing");
console.log(myMap.get(NaN))//for a thing
var otherNaN=Number("you")
console.log(myMap.get(otherNaN))//for a thing
var myMap=new Map();
myMap.set(NaN,"for a thing");
console.log(myMap.get(NaN))//for a thing
var otherNaN=Number(2,4)
console.log(myMap.get(otherNaN))//undefined
4、Map 的迭代
var myMap=new Map();
myMap.set(0,"def")
myMap.set(1,"rfg")myMap.set(3,"ppp")
for(var [index,value] of myMap){
console.log(index+"="+value)
}
var myMap=new Map();
myMap.set(0,"def")
myMap.set(1,"rfg")myMap.set(3,"ppp")
for(var [index,value] of myMap.entries()){
console.log(index+"="+value)
}
这个 entries 方法返回一个新的 Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的 [index, value] 数组。
var myMap=new Map();
myMap.set(0,"def")
myMap.set(1,"rfg")
myMap.set(3,"ppp")
for (var key of myMap.keys()) {
console.log(key);
}
这个 keys 方法返回一个新的 Iterator 对象, 它按插入顺序包含了 Map 对象中每个元素的键。
var myMap=new Map();
myMap.set(0,"def")
myMap.set(1,"rfg")
myMap.set(3,"ppp")
for (var value of myMap.values()) {
console.log(value);
}
这个 values 方法返回一个新的 Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的值。
var myMap=new Map();
myMap.set(0,"def")
myMap.set(1,"rfg")
myMap.set(3,"ppp")
myMap.forEach(function(value,key){
console.log(key+"="+value);
},myMap);

5、Map 对象的操作
(1)Map 与 Array的转换
var k=[["one","thr"],["two","yht"]]
var myMap=new Map(k);
var arr=Array.from(myMap)
console.log(arr)
Map 构造函数可以将一个 二维 键值对数组转换成一个 Map 对象使用 Array.from 函数可以将一个 Map 对象转换成一个二维键值对数组
(2)Map 的克隆
var myMap1 = new Map([["key1", "value1"], ["key2", "value2"]]);
var myMap2 = new Map(myMap1);
console.log(myMap2===myMap1)//false
//Map 对象构造函数生成实例,迭代出新的对象。
console.log(myMap2)

(3)Map 的合并
var first = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
var second = new Map([[1, 'uno'], [2, 'dos']]);
// 合并两个 Map 对象时,如果有重复的键值,则后面的会覆盖前面的,对应值即 uno,dos, three
var merged = new Map([...first, ...second]);
边栏推荐
- CG bone animation
- Ubuntu安装配置PostgreSQL(18.04)
- 关于NaN的一些总结
- Investment planning and forecast report on the future direction of China's smart agriculture during the 14th five year plan (2022)
- Scala problem solving the problem of slow SBT Download
- Implementing mixins scheme in applet
- This executeQuery (SQL) cannot compile classes for JSP. What is the reason?
- Microservice governance (nocas)
- 班主任让开股票账户,在挖财理财开户安全吗?
- Installing MySQL under Linux (RPM package installation)
猜你喜欢

手把手带你学会Odoo OWL组件开发(7):OWL项目实战使用

计组实践实验9——使用CMStudio设计基于分段模型机微程序指令(2)

初识-软件测试

国标GB28181协议EasyGBS级联宇视平台,保活消息出现403该如何处理?

Spark-day03-core programming RDD operator

Xiaobai lazy special-win10-win11 one click installation version

NoSQL mongodb - 04 mongodb database and web service combination case

Laravel subdomain accesses different routing files and different modules

Stream流学习记录
![[redis series] redis learning 16. Redis Dictionary (map) and its core coding structure](/img/d2/a6cbb0abe9e04c412d1f6021430528.png)
[redis series] redis learning 16. Redis Dictionary (map) and its core coding structure
随机推荐
MySQL optimization - index (what is an index?)
Research on the current situation of China's modified engineering plastics market and demand forecast analysis report 2022-2028
一个初级多线程服务器模型
EasyGBS如何解决对讲功能使用异常?
Summary of some application research cases of UAV Remote Sensing in forest monitoring
Tiger Dao VC products are officially launched, a powerful supplement to seektiger ecology
JMeter response time and TPS listener tutorial
Analysis report on China's photovoltaic inverter market prospect forecast and investment strategy recommendations in 2022
"Pinduoduo and short video speed version", how can I roast!
美学心得(第二百三十八集) 罗国正
Research and development practice of Kwai real-time data warehouse support system
The laravel dingo API returns a custom error message
源码学习:AtomicInteger类代码内部逻辑
7-2 数的三次方根
Nodejs framework express and KOA
dried food! Yiwen will show you SD card, TF card and SIM card!
Laravel uses find_ IN_ The set() native MySQL statement accurately queries whether a special string exists in the specified string to solve the problem that like cannot be accurately matched. (resolve
Typescript learning (I) type
Encapsulate request request of uni app
7-3 最低通行费