ES6系列----Set和Map数据结构对比

一、Set和Map数据结构定义区别

 Set数据结构Map数据结构
定义Set类似于数组,但是成员的值都是唯一的,没有重复。使用new Set()创建Set实例Map类似于对象,但是键的范围不限于字符串,各种类型的值都可以作为键值。使用new Map()创建Map实例

二、Set和Map操作方法的区别

 Set数据结构Map数据结构
size属性set.sizemap.size
新增set.add(val); 返回Set结构本身map.set(key, val); 返回Map结构本身
删除set.delete(val); 返回布尔值,表示是否删除成功map.delete(key); 返回布尔值,表示是否删除成功
是否包含某个值set.has(val); 返回布尔值,表示是否包含这个值map.has(val); 返回布尔值,表示是否包含这个键
获取值-map.get(key); 返回对应键值的值,没有则返回undefined
清除所有成员set.clear(); 没有返回值map.clear(); 没有返回值
//Set数据结构
let set = new Set();
set.add(1)
   .add(2)
   .add(2);
set.size;  //2
set.has(3);  //false
set.delete(2);  
set.has(2);  //false



//Map数据结构
const map = new Map();
map.set('aaa', true)
   .set(2, 2)
   .set(undefined, 'this is undefined');
map.size;  //3
map.get(undefined);  //'this is undefined'
map.has(2);  //true
map.delete(2);  //true
map.has(2);  //false

三、Set和Map的遍历方法

1. 遍历键名:for(let item of set.keys()){ }; for(let item of map.keys()){ };

2. 遍历键值:for(let item of set.values()){ }; for(let item of map.values()){ };

3. 遍历键值对:for(let item of set.entries()){ }; for(let item of map.entries()){ };

4. 使用回调遍历每个成员:set.forEach(); map.forEach()

四、Set和Map的应用

1. 数组去重:[... new Set(Array)] ;

参考文章:http://es6.ruanyifeng.com/

 

 

 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值