首页 > 解决方案 > 在javascript中组合两个数组但省略公共值

问题描述

我有两个数组。

数组 1:一个数组是一组对象:

arr1 = [{id:1, age:10}, {id:2, age:12}]

数组 2:第二个数组只是一个 id 数组:

arr2 = [3,4,1,5,2]

我的目标是组合这两个数组,但首先从第一个数组中获取对象,然后将第二个数组中的元素加入其中,只获取 arr1 中不存在的 id。第二个数组元素需要转换为对象。上述示例的最终结果将是:

newArray = [{id:1, age:10}, {id:2, age:12}, {id:3}, {id:4}, {id:5}]

考虑到对象和整数作为数组项的混合,我真的很困惑如何做到这一点。

标签: javascript

解决方案


您要做的是循环遍历arr2该数组中的每个条目(整数),检查是否arr1包含一个对象,其中该id属性等于arr2您正在处理的条目。如果不是这种情况,那么您添加 ( push) 一个新元素到arr1id属性设置为您从中处理的元素的值的位置arr2

你可以用这样的一些javascript来做到这一点:

let arr1 = [{id:1, age:10}, {id:2, age:12}]
let arr2 = [3,4,1,5,2]

for (var i = 0; i < arr2.length; i++) {
  let id = arr2[i];
  if (!arr1.find(x => x.id === id)) {
    arr1.push({ id: id });
  }
}

console.log(arr1)


推荐阅读