MAP
前言:要搞清楚map是什么首先要搞清楚键值对的概念
什么是键值对?
键值对( 'key = value ')
顾名思义,每一个键会对应一个值。
举个例子:身份证号和你本人是绑定的关系。每一个身份证号都会对应一个人的身份关系
我们在登录微信或者游戏时,需要输入手机号验证身份。系统会向该手机号发送一条验证短信。这里的手机号码(键),对应的接收用户就是值。
每个键对应响应的值,当按下响应的键时,就会输出响应的结果。
键可以理解为编号,值可以理解为编号对应的数据
MAP对象
Map对象用来保存键值对,在Map对象中任何值(对象或者原始值)都可以作为一个键(任何数据类型)或一个值.
实例:
const apples = { name: " Apples " };
const bananas = { name: "Bananas" };
const oranges = { name: 'Oranges' };
//创建新的Map对象(new Map())
const fruits = new Map();
//向Map对象添加成员(set())
fruits.set(apples, 500);
fruits.set(bananas, 200);
fruits.set(oranges, 200);
//获取map对象中键中的值(get())
console.log(fruits.get(apples))//500;
//获取Map对象中键的数组(keys())
console.log(fruits.keys());//{...},{...},...}}
//获取Map对象中值的数组(values())
console.log(fruits.values());//{500,200,200}
//获取Map对象中键/值对的数组(entries())
console.log(fruits.entries())//{..}=>500,...] => 200,...] => 200}
//返回Map中元素的数量(Map.size)
console.log(fruits.size)
其实Map和对象非常相似,但是对象的键只能是String类型或Symbol类型,Map在这方面就显得自由开放,以下是Map与对象的对比。
Map 对标的是 Object,是一种类似于对象的键值对数据结构
- 不同于Object 的是Map 的键可以为任意类型的值(null 会被当做 undefined),而不仅仅为字符串
- Map 的键值是有序的,可通过 size 获取长度
- Map 在频繁增删键值对的场景下会有一些性能优势
除上面的方法外还有许多其他方法在下面我们进行了整理
//【基本Map方法】
// new Map():创建新的Map对象。
// set():为Map对象中的键设置值。
// get():获取Map对象中键的值。
//keys():返回Map对象中键的数组。
//values():返回Map对象中值的数组。
//entries():返回Map对象中键/值对的数组。
//【Map()属性】
// Map.size:返回Map中元素的数量。
//【其他Map()方法】
//clear():删除Map中的所有元素。
//delete():删除由键指定的元素。
//has():如果键存在,则返回true。