美文网首页
数组的交集和并集

数组的交集和并集

作者: 北〤极星_ | 来源:发表于2020-06-11 14:47 被阅读0次

简单的数组

let a=[1,2,3,4,5];

let b=[1,2,3,4,5,6,7,8,9];

并集


let arr = Array.from(new Set([...a, ...b]));

// [ 1, 2, 3, 4, 5, 6, 7, 8, 9]

交集

let arr = Array.from(new Set([...b].filter(x => a.has(x))));

// [ 1, 2, 3, 4, 5 ]

差集

let arr = Array.from(new Set([...b].filter(x => !a.has(x))));

//[ 6, 7, 8, 9 ]

数组对象

let a = [{ id: 1, a: 123, b: 1234 },    

         { id: 2, a: 123, b: 1234 }];

let b = [{ id: 1, a: 123, b: 1234 },   

            { id: 2, a: 123, b: 1234 },    

             { id: 3, a: 123, b: 1234 },                

            { id: 4, a: 123, b: 1234 }];  

并集

let obj1 = {},//通过ID去重

markerAray = a.concat(b).reduce((cur, next) => {   

     obj1[next.id] ? "" : obj1[next.id] = true && cur.push(next);  return cur;   

 }, []) //设置cur默认类型为数组,并且初始值为空的数组 

//markerAray  [ { id: 1, a: 456, b: 1234 }, { id: 2, a: 123, b: 1234 }, { id: 3, a: 123, b: 1234 }, { id: 4, a: 123, b: 1234 }]

交集

 let arr = [...b].filter(x => [...a].some(y => y.id === x.id));

//[ { id: 1, a: 123, b: 1234 }, { id: 2, a: 123, b: 1234 } ]

差集

let arr = [...b].filter(x => [...a].every(y => y.id !== x.id));

// [ { id: 3, a: 123, b: 1234 }, { id: 4, a: 123, b: 1234 } ]

相关文章

网友评论

      本文标题:数组的交集和并集

      本文链接:https://www.haomeiwen.com/subject/ervecqtx.html