Set和Map的使用场景

Set和Map

Set集合是一种无重复元素的列表,开发者们一般不会逐一读取数组中的元素,也不太可能逐一访问Set集合中的每个元素,通常的做法是检测给定的值在某个集合中是否存在
Map集合内含多组键值对,集合中每个元素分别存放着可访问的键名和它对应的值,Map集合经常被用于缓存频繁取用的数据。
Set的使用场景
Set和Array的区别是Set里的每一个元素都是唯一的,比如你有一个Array里面有4个元素[1, 2, 3, 1,4],如果你把它转换成Set,就变成[1, 2, 3,4]了。所以我们可以利用Set的这个特性做整数数组的去重。但要注意的是,如果你的数组是[{name: 1}, {name: 1}]这样的包含Object的数组,那么你把它转换为Set时并不能去重,因为虽然这两个对象看起来一样,但在Set看来,这个数组里的两个对象是两个完全不同的值,所以并不符合去重的要求。
Map的使用场景
Map类似于对象,是键值对的集合,数据可为任意类型,与Object的区别在于Object的键只能是字符串或者Symbols,但Map可以为任意类型,且Map中的键值是有序的,Map有一个比较特殊的应用场景。如果你在开发时不确定键值对里面的键的名称,那么你需要用Map。举例来说,你需要动态地从MongoDB里获取键值并显示给用户,但也许你并不关心这些键值的键名到底是什么,那么在这种情况下,你可以用Map,例如这样:


var myMap = new Map();

var keyObj = {},
    keyFunc = function () { return 'hey'},
    keyString = "a string";

myMap.set(keyString, "value associated with 'a string'");
myMap.set(keyObj, "value associated with keyObj");
myMap.set(keyFunc, "value associated with keyFunc");

console.log(myMap.get(keyFunc));
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值