天天看點

es6中的Set 實作并集(Union)、交集(Intersect)和差集(Difference)

ES6 提供了新的資料結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重複的值。

Set本身是一個構造函數,用來生成 Set 資料結構。數組的map和filter方法也可以間接用于 Set 了。是以使用 Set 可以很容易地實作并集(Union)、交集(Intersect)和差集(Difference)。

let a = new Set(["北京", "上海", "深圳"]);
let b = new Set(["廣州", "深圳", "上海"]);
 
// 并集
let union = new Set([...a, ...b]);
// Set {"北京", "上海", "深圳", "廣州"}
 
// 交集
let intersect = new Set([...a].filter(item => b.has(item)));
// set {"上海", "深圳"}
 
// 差集
let difference1 = new Set([...a].filter(item => !b.has(item)));
// Set {"北京"}
let difference2 = new Set([...b].filter(item => !a.has(item)));
// Set {"廣州"}
           

繼續閱讀