ES6的Map与Set说明

Map对象:https://blog.csdn.net/qq_34645412/article/details/145500626

 

Map 是 ES6 提供的新的数据结构,它类似于对象,但是"键"的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 也可以跟踪键值对的原始插入顺序。

应用场景:

1、缓存系统:【常用功能】

const cache = new Map();
function getData(key) {
  if (cache.has(key)) {
    return cache.get(key);
  }
  const data = fetchData(key); // 假设 fetchData 是一个获取数据的函数
  cache.set(key, data);
  return data;
}

已经缓存的数据直接从缓存获取,缓存中没有的数据才从其它地方获取。Map 在增删操作上的性能优于普通对象,尤其是在键值对数量较大时。

重点:Map比普通对象强大的地方还有,它可以以对象作为键值,关联一个对象和另外一个对象的关系(深拷贝解决循环引用用的就是weakmap这个特性)。

2、需要保持插入顺序时:

Map 会保留键值对的插入顺序,而普通对象的键顺序是不确定的(ES6+ 中对象属性顺序有规则,但不如 Map 直观)。

3、其它一些功能一般使用object就可以。

 


 

Set对象:

应用场景:

1、需要去重时:

2、需要存储唯一值时:

3、需要集合运算时:Set 支持并集、交集、差集等集合运算。



 

posted @ 2025-05-20 10:10  吴飞ff  阅读(23)  评论(0)    收藏  举报