📌  相关文章
📜  javascript合并没有重复的对象数组 - Javascript(1)

📅  最后修改于: 2023-12-03 14:42:41.243000             🧑  作者: Mango

Javascript合并没有重复的对象数组

在开发过程中,我们通常会遇到需要合并多个对象数组并且去除重复项的情况。在Javascript中,有多种方法可以实现这样的操作。

以下代码片段演示了如何使用Javascript合并多个对象数组并去除重复项:

function mergeArrays(...arrays) {
  // 创建一个新的空数组来存储结果
  let mergedArray = [];

  // 遍历每个传入的数组
  arrays.forEach(array => {
    // 遍历当前数组的每个元素
    array.forEach(item => {
      // 检查是否已经存在于结果数组中
      if (!mergedArray.find(obj => obj.id === item.id)) {
        // 如果不存在,则将其添加到结果数组中
        mergedArray.push(item);
      }
    });
  });

  return mergedArray;
}

// 示例用法
const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Alice' }];
const array2 = [{ id: 2, name: 'Alice' }, { id: 3, name: 'Bob' }];
const array3 = [{ id: 4, name: 'Eve' }];

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

在上述代码中,我们定义了一个名为mergeArrays的函数,它使用了剩余参数(...arrays)来接收任意数量的对象数组。该函数首先创建一个空数组mergedArray来存储结果。

然后,我们使用嵌套的forEach循环遍历每个传入的数组。对于当前数组的每个元素,我们使用Array.prototype.find方法来检查它是否已经存在于结果数组mergedArray中。如果不存在,则将其添加到结果数组中。

最后,我们返回合并后的数组mergedArray

在示例中,我们使用了三个对象数组进行合并,并将结果存储在变量merged中。通过打印merged,我们可以看到合并后的结果数组。

希望这个简单的示例能够帮助你在Javascript中合并多个对象数组并去除重复项!