可以使用Array.filter()和Array.find()方法来实现数组之间的比较和筛选。具体步骤如下:
const arr1 = [
{id: 1, name: 'John'},
{id: 2, name: 'Mark'},
{id: 3, name: 'Mary'}
];
const arr2 = [
{id: 1, salary: 50000},
{id: 2, salary: 60000},
{id: 4, salary: 70000}
];
const common = arr1.filter(obj1 => arr2.find(obj2 => obj2.id === obj1.id));
const onlyInArr1 = arr1.filter(obj1 => !arr2.find(obj2 => obj2.id === obj1.id));
const onlyInArr2 = arr2.filter(obj2 => !arr1.find(obj1 => obj1.id === obj2.id));
完整代码示例:
const arr1 = [
{id: 1, name: 'John'},
{id: 2, name: 'Mark'},
{id: 3, name: 'Mary'}
];
const arr2 = [
{id: 1, salary: 50000},
{id: 2, salary: 60000},
{id: 4, salary: 70000}
];
const common = arr1.filter(obj1 => arr2.find(obj2 => obj2.id === obj1.id));
console.log(common); // [{id: 1, name: 'John'}, {id: 2, name: 'Mark'}]
const onlyInArr1 = arr1.filter(obj1 => !arr2