JS 数组常用方法汇总


两个数组对象求差集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 定义一个名为 arrayDifference 的函数,接受两个数组作为参数
function arrayDifference(arr1, arr2) {
// 创建一个空数组,用于存储 arr2 中包含的 id
const ids2 = arr2.map((item) => item.id);
// 使用 filter() 方法过滤 arr1 中的元素,以排除 arr2 中的元素
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: 1, name: 'A' }]

这段代码首先从每个数组对象中提取 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) {
// 如果在 arr2 中找到匹配的项,将两个对象合并
return { ...item1, ...matchingItem };
}
return item1; // 如果没有匹配项,保留 item1 不做合并
});
}

const array1 = [
// 第一个数组对象的内容
];

const array2 = [
// 第二个数组对象的内容
];

const mergedArray = mergeArrays(array1, array2);
console.log(mergedArray);

在这个示例中,mergeArrays 函数遍历 array1 中的每个对象,并使用 find 方法在 array2 中查找具有相同 id 值的对象。如果找到匹配项,它会将两个对象合并,并返回合并后的对象。如果没有找到匹配项,它会保持 array1 中的对象不做合并。

最后,mergedArray 将包含两个数组对象的合并结果。请根据你的实际需求和对象字段进行适当的调整。