Javascript中的Set和Map

2018-03-27  本文已影响6人  浩神

set

类似于数组,但元素都是唯一的

Set判断元素是否相等,采用类似于===的方式:

  1. NaN和NaN是相同的
  2. 两个对象是不相等的

基本操作

Array.form方法可以将Set转换为array

对set的遍历

let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);

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

// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}

// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}

Map

Javascript的对象本质上是键值对的集合,并且只能用字符串当做键;
Map也是键值对的集合,但是能够适用各种类型作为键

const m = new Map();
const o = {p: 'Hello World'};

m.set(o, 'content')
m.get(o) // "content"

m.has(o) // true
m.delete(o) // true
m.has(o) // false
上一篇 下一篇

猜你喜欢

热点阅读