差集
let arr = [1, 2, 3, 4];
let arr1 = [2, 3, 4, 5, 6];
arr.filter(a => arr1.every(a1 => a != a1)); //[1]
or
arr.filter(a => !arr1.includes(a))
数组对象
const arr2 = [ { id: 1, code: 1 }, { id: 2, code: 3 }, { id: 3, code: 5 }, { id: 4, code: 6 },];const arr3 = [ { id: 1, code: 1, name: 'a' }, { id: 2, code: 3, name: 'b' }, { id: 3, code: 3, name: 'c' }, { id: 4, code: 3, name: 'd' }];arr2.filter(a2 => arr3.every(a3 => a2.code !== a3.code));
// [{id: 1,code: 1},{id: 2,code: 3}];
交集
let arr = [1, 2, 3, 4];
let arr1 = [2, 3, 4, 5, 6];
arr.filter(a => arr1.some(a1 => a === a1)); // [2,3,4]
or
arr.filter(a => arr1.includes(a))
数组对象
const arr2 = [ { id: 1, code: 1 }, { id: 2, code: 3 }, { id: 3, code: 5 }, { id: 4, code: 6 },];
const arr3 = [ { id: 1, code: 1, name: 'a' }, { id: 2, code: 3, name: 'b' }, { id: 3, code: 3, name: 'c' }, { id: 4, code: 3, name: 'd' }];
arr2.filter(a2 => arr3.some(a3 => a2.code === a3.code))
// [{id: 1,code: 1},{id: 2,code: 3}];