我们在处理数据的时候经常会遇到数组对象之间的处理,根据我遇到的常用的进行总结,处理的是数组对象,而非数组。
数组对象
两个数组对象根据ID取交集
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 arr = [...b].filter(x => [...a].some(y => y.id === x.id));
console.log('arr',arr)
//输出
[{"id":1,"a":123,"b":1234},{"id":2,"a":123,"b":1234}]
两个数组对象根据ID取差集
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 arr = [...b].filter(x => [...a].every(y => y.id !== x.id));
console.log('arr',arr);
数组
取并集
let a=new Set([1,2,3,4,5]);
let b=new Set([1,2,3,4,5,6,7,8,9]);
let arr = Array.from(new Set([...a, ...b]));
console.log('arr',arr);
取交集
let a=new Set([1,2,3,4,5]);
let b=new Set([1,2,3,4,5,6,7,8,9]);
let arr = Array.from(new Set([...b].filter(x => a.has(x))));
取差集
let a=new Set([1,2,3,4,5]);
let b=new Set([1,2,3,4,5,6,7,8,9]);
let arr = Array.from(new Set([...b].filter(x => !a.has(x))));
console.log('arr',arr);
这些方法就可以直接拿去用了
网友评论