python 和 JS 获取交集、 并集和差集

Python:由于经常需要对数组作操作,需要获取交集 并集和差集

 

1、交集 list(set(a).intersection(set(b))) 获取a和b中重叠的元素。

 

2、并集 list(set(a).union(set(b)))

 

3、获取差集 list(set(a).differenceset(b))  #a中有,b中没有

 

 

ES7  JS: 1 获取数组的并集 

  let union = a.concat(b.filter(v => !a.includes(v))   // [1,2,3,4,5]  将b不在a中的元素追加到a中

 

  2 获取数据的交集

  let intersection = a.filter(v => b.includes(v)  //  返回的是一个数组

 

  3 获取差集 在数组a中,但是不在数组b中的元素

  let difference = a.concat(b).filter(v=>a.includes(v) && !b.includes(v)) 

 

  4 在数组b中,但是不在数组a中的元素‘

  let difference = b.concat(a).filter(v=>b.includes(v) && !a.includes(v))   //计算数组的差集

 

ES6 

let a = [1, 2, 3]l

let b = [2, 4, 5]

let aSet = new Set(a)

let bSet = new Set(b) 

 

并集  let union = Array.from(new Set(a.concat(b)))

交集 let intersection = Array.from(new Set(a.filter(v => bSet .has(v)))

差集 difference = Array.fron(new Set(a.concat(b)).filter(v => aSet.has(v) && !bSet.has(v) )

 

es5 

var a = [1,2,3];
var b = [2,4,5];

// 并集
var union = a.concat(b.filter(function(v) {
return a.indexOf(v) === -1})) // [1,2,3,4,5]

// 交集
var intersection = a.filter(function(v){ return b.indexOf(v) > -1 }) // [2]

// 差集
var difference = a.filter(function(v){ return b.indexOf(v) === -1 })// [1,3]

console.log(union)
console.log(intersection)
console.log(difference)

 

posted @ 2020-05-24 14:15  xiaogao2700c  阅读(210)  评论(0编辑  收藏  举报