两个数组对象求差集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function arrayDifference(arr1, arr2) { const ids2 = arr2.map((item) => item.id); const difference = arr1.filter((item) => !ids2.includes(item.id));
return difference; }
const array1 = [ { id: 1, name: "A" }, { id: 2, name: "B" }, { id: 3, name: "C" }, ]; const array2 = [ { id: 2, name: "B" }, { id: 3, name: "C" }, ];
const result = arrayDifference(array1, array2); console.log(result);
|
这段代码首先从每个数组对象中提取 id 属性,然后使用 filter 函数找出在 array1 中存在但不在 array2 中的对象,从而得到它们的差集。最后,result 将包含差集的数组对象。
连个数组对象求并集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function mergeArrays(arr1, arr2) { return arr1.map((item1) => { const matchingItem = arr2.find((item2) => item2.id === item1.id); if (matchingItem) { return { ...item1, ...matchingItem }; } return item1; }); }
const array1 = [ ];
const array2 = [ ];
const mergedArray = mergeArrays(array1, array2); console.log(mergedArray);
|
在这个示例中,mergeArrays 函数遍历 array1 中的每个对象,并使用 find 方法在 array2 中查找具有相同 id 值的对象。如果找到匹配项,它会将两个对象合并,并返回合并后的对象。如果没有找到匹配项,它会保持 array1 中的对象不做合并。
最后,mergedArray 将包含两个数组对象的合并结果。请根据你的实际需求和对象字段进行适当的调整。