笔记
交集
const arr1 = [1, 2, 3, 4, 5 , 8 ,9],
arr2 = [5, 6, 7, 8, 9];
const intersection1 = arr1.filter((item) => arr2.includes(item));
console.log(intersection1);
const intersection2 = Array.from(new Set(arr1.concat(b)));
console.log(intersection2);
const arr1 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name5', id: 5 }];
const arr2 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name4', id: 4 }, { name: 'name5', id: 5 }];
const arr2Ids = arr2.map(item => item.id);
const intersection1 = arr1.filter(item => arr2Ids.includes(item.id))
console.log(intersection2);
const intersection2 = arr1.reduce((pre, cur, index, array) => {
if (arr2.some(item => item.id === cur.id)) {
pre.push(cur)
}
return pre;
}, []);
console.log(intersection2);
并集
const arr1 = [1, 2, 3, 4, 5 , 8 ,9]
arr2 = [5, 6, 7, 8, 9]
const result1 = arr1.concat(arr2.filter(item => !arr1.includes(item)))
console.log(result1)
const arr1 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name5', id: 5 }];
const arr2 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name4', id: 4 }, { name: 'name5', id: 5 }];
const arr3 = arr1.concat(arr2);
let obj = {};
const result2 = arr3.reduce((prev, cur, index, array) => {
obj[cur.id] ? '' : obj[cur.id] = true && prev.push(cur);
return prev
}, []);
console.log(result2);
差集
const arr1 = [1, 2, 3, 4, 5 , 8 ,9],
arr2 = [5, 6, 7, 8, 9];
const result1 = arr1.filter((item) => !arr2.includes(item));
console.log(result1);
const arr1 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name5', id: 5 }];
const arr2 = [{ name: 'name1', id: 1 }, { name: 'name2', id: 2 }, { name: 'name3', id: 3 }, { name: 'name4', id: 4 }, { name: 'name5', id: 5 }];
const result2 = arr1.filter(item => arr2.every(subItem => subItem.id !== item.id));
console.log(result2)