在 JavaScript 中,如何求出两个数组的交集和差集?

JavaScript024

在 JavaScript 中,如何求出两个数组的交集和差集?,第1张

相同的a.filter(function(v){returnb.indexOf(v)>-1})不同的 a.filter(function(v){ return !(b.indexOf(v) >-1) }).concat(b.filter(function(v){ return !(a.indexOf(v) >-1)}))

es6新的数据结构set集合 类似数组 但是成员值 都是唯一 他们之间也可以相互转换

去重

交集

has是set集合的方法

Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。

差集

并集

es6中可以用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}

最后可以使用Array.from(Set) 方法将set对象转换为数组