1. Set

集合Set类似于数组,但成员都是唯一且无序的,是ES6提供的一种新的数据结构。 优点:处理基本数据类型非常好用

开发中的应用:

  1. 数组去重

    1. const mySet = new Set([1, 2, 3, 4, 4]);
    2. Array.from(new Set([1,1,1,2,3])) // 去重后转回数组
  2. 元素查找

    1. const mySet = new Set(['a', 'bb', 'ccc']);
    2. const ifB = mySet.has('bb') // true
  3. 求并集

    1. const a = new Set([1, 2, 3]);
    2. const b = new Set([4, 3, 2]);
    3. const union = new Set([...a, ...b]); // {1, 2, 3, 4}
  4. 求交集

    1. const a = new Set([1, 2, 3]);
    2. const b = new Set([4, 3, 2]);
    3. const intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}
  5. 求差集

    1. const a = new Set([1, 2, 3]);
    2. const b = new Set([4, 3, 2]);
    3. const difference = new Set([...a].filter(x => !b.has(x))); // {1}
  6. 其他基础方法

    1. 增 add()
    2. 删 delete()(单个) / clear()(所有)
    3. 转为数组 Array.from()
    4. 获取长度 set.size
  7. 遍历操作
    1. forEach() / map() / for…of… / filter

2. Map

Map与对象的区别

  1. 键:
    1. 对象:字符串或Symbol
    2. Map:任意类型
  2. 获取大小
    1. 对象: Object.keys(obj).length
    2. Map: map.size
  3. 遍历顺序
    1. 对象:返回的键是无序的
    2. Map:按插入顺序返回键值

应用:
Map应看作普通对象的补充,不应该当作替代品