Map对象

Map 对象

Map对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或者一个值。
Map对象是键值对的集合。Map中的一个键只能出现一次;它在Map的集合中是独一无二的。Map对象按键值对迭代——一个for...of循环在每次迭代后会返回一个形式为[key, value]的数组。迭代按照插入顺序进行,即键值对按set()方法首次插入到集合中的顺序(也就是说,当调用set时,map中没有具有相同值的键)进行迭代。
我们通常见到的键值对只是a:1的这种形式,实际上[a, 1] { a => 1 }这种形式都是键值对的形式。
键的相等性
Map键的比较基于零值相等算法。(它曾经使用同值相等,将0-0视为不同。检查浏览器兼容性。)这意味着NaN是与NaN相等的,虽然NaN !== NaN,剩下所有的其它的值是根据===运算符的结果判断是否相等。
**Map**构造函数中的参数
Map构造函数中的参数接收二维数组,数组内部是以键值对的形式存在的,例如:

const map = new Map([
	[{}, '1'],
	['too', 'bar'],
	[true, 'false'],
]);

**Map**实例属性、实例方法
Map实例属性size:返回Map对象中的键值对数量,注意是[[Entries]]属性内部的键值对数量,并不是Map对象自身上的属性数量。
Map实例方法:

  1. clear:移除Map对象中所有的键值对。
  2. delete:移除Map对象中指定的键值对,如果键值对存在并成功被移除,返回true,否则返回false。调用delete后再调用map.has(key)将返回false
  3. has:返回一个布尔值,用来表明Map对象中是否存在与指定的键key关联的值。
  4. get:返回与指定的键key关联的值,若不存在关联的值,则返回undefined
  5. set:在Map对象中设置与指定的键key关联的值,并返回Map对象。
  6. keys:返回一个新的迭代对象,其中包含map对象中所有的键,并以插入Map对象的顺序排列。
  7. values:返回一个新的迭代对象,其中包含map对象中所有的值,并以插入Map对象的顺序排列。
  8. entries:返回一个新的迭代对象,其为一个包含map对象中所有键值对的[key, value]数组,并以插入Map对象的顺序排列。
  9. forEach:以插入的顺序对Map对象中存在的键值对分别调用一次callbackFn。如果给定了thisArg参数,这个参数将会是回调函数中的this值。
const map = new Map();
map.set({a:1}, 'a:1');
map.set({a:2}, 'a:2');

map.forEach((key, value)=>{
  console.log(key, value); // a:1 {a:1}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

️不倒翁

你的鼓励就是我前进的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值