ES6(11)—— 数据结构map

一、为什么会产生Map数据结构?

Javascript对象(Objdect)本质上是键值对的集合(Hash结构),但是只能用字符串作为健。为了解决这个问题,ES6提供了Map数据结构,它类似于对象,也是键值对的集合,但是键的范围不限于字符串,各种类型的值都可以当作键。Object提供了“字符串——值”的对应,Map结构提供了“值——值”的对应,是一种完善的Hash结构实现。

二、基本用法。

1、Map可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。实际上,任何具有Iterator接口且每个成员都是一个双元素数组的数据结构都可以当作Map构造函数的参数。

const map = new Map([
    ['name','张三'],
    ['title','Author']
]);
console.log(map.size);           //2
console.log(map.has('name'));    //true
console.log(map.get('name'));    //张三
console.log(map.has('title'));   //true
console.log(map.get('title'));   //Author

//Map接受数组作为参数,实际上执行的是如下算法:
const items = [
    ['name','张三'],
    ['title','Author']
];
const map = new Mp();
items.forEach(
    ([key,value]) => map.set(key,value)
);

2、Set和Map都可以用来生成新的Map。

const set = new Set([
   ['foo',1],
   ['bar',2]
]);
const m1 = new Map(set);
console.log(m1.get('foo'));
const m2  = new Map([['baz',3]]);
const m3 = new Map(m2);
console.log(m3.get('baz'));

3、如果对同一个键多次使用,后面的值将覆盖前面的值。如果读取了未知的值,将返回undefined。

const map = new Map();
map.set(1,'aaa').set(1,'bbb');
console.log(map.get(1));     //bbb
console.log(map.get(a));     //undefined

4、只有对同一个对象的引用,Map结构才将其视为同一个键。

const map = new Map();
map.set(['
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值