Map与Set
  # 1. Set
集合Set类似于数组,但成员都是唯一且无序的,是ES6提供的一种新的数据结构。 优点:处理基本数据类型非常好用
开发中的应用:
- 数组去重
 
const mySet = new Set([1, 2, 3, 4, 4]);
Array.from(new Set([1,1,1,2,3])) // 去重后转回数组
 1
2
2
- 元素查找
 
const mySet = new Set(['a', 'bb', 'ccc']);
const ifB = mySet.has('bb') // true
 1
2
2
- 求并集
 
const a = new Set([1, 2, 3]);
const b = new Set([4, 3, 2]);
const union = new Set([...a, ...b]); // {1, 2, 3, 4}
 1
2
3
2
3
- 求交集
 
const a = new Set([1, 2, 3]);
const b = new Set([4, 3, 2]);
const intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}
 1
2
3
2
3
- 求差集
 
const a = new Set([1, 2, 3]);
const b = new Set([4, 3, 2]);
const difference = new Set([...a].filter(x => !b.has(x))); // {1}
 1
2
3
2
3
- 其他基础方法
- 增 add()
 - 删 delete()(单个) / clear()(所有)
 - 转为数组 Array.from()
 - 获取长度 set.size
 
 - 遍历操作
- forEach() / map() / for...of... / filter
 
 
# 2. Map
Map与对象的区别
- 键:
- 对象:字符串或Symbol
 - Map:任意类型
 
 - 获取大小
- 对象: Object.keys(obj).length
 - Map: map.size
 
 - 遍历顺序
- 对象:返回的键是无序的
 - Map:按插入顺序返回键值
 
 
应用: Map应看作普通对象的补充,不应该当作替代品
编辑  (opens new window)
  上次更新: 2023/02/17