一、 集合 Set

概念:Set 是一种无序唯一的数据结构,常用来做去重、判断某元素是否在集合中、求交集
特点:由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以 keys 方法和 values 方法的行为完全一致

  1. const mySet = new Set(['a', 'a', 'b'])
  2. console.log(mySet) // {'a', 'b'}
  3. // add(value) 添加某个值,返回 Set 结构本身(可以链式调用)
  4. myset.add('c')
  5. console.log(mySet) // {'a','b','c'}
  6. // size属性 获取集合内容的个数(长度)
  7. console.log(mySet.size) // 3
  8. // has(value) 返回一个布尔值,表示该值是否为Set的成员
  9. mySet.has('a') // true
  10. // clear() 清除所有成员,没有返回值

二、字典 Map

概念:Map 与集合类似,字典也是一种存储唯一值的数据结构,但是它是以键值对的形式来存储的,常用来做键值对的增删改查
Map 和 Object 的区别:Object 的键只能是字符串或者 Symbols,但Map 的键可以是任意值;Map的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算

  1. const m1 = new Map([['a', 1], ['b', 2]])
  2. console.log(m1) // {"a" => 1, "b" => 2}
  3. // set(key, val) 向Map中添加新元素
  4. m1.set('c', 3)
  5. console.log(m1) // {"a" => 1, "b" => 2, "c"=>3}
  6. // get(key) 通过键值查找特定的数值并返回
  7. console.log(m1.get('c')) //3
  8. // has(key) 判断Map对象中是否有Key所对应的值,有返回true,否则返回false
  9. console.log(m1.get('c')) //true
  10. // delete(key) 通过键值从Map中移除对应的数据
  11. m1.delete('c')
  12. console.log(m1) // {"a" => 1, "b" => 2}
  13. // clear() 将这个Map中的所有元素删除