我有两个数组。
数组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}]
鉴于对象和整数作为数组项的混合,我对如何执行此操作感到非常困惑。
答案 0 :(得分:0)
您想要做的是循环arr2
并针对该数组中的每个条目(整数),检查arr1
是否包含对象,其中id
属性等于该条目在arr2
中处理。如果不是这种情况,则可以向push
添加(arr1
)新元素,其中id
属性设置为您从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)
答案 1 :(得分:-1)
减少:
您以arr1
为基础,然后在arr2
中的每个键上运行,如果数组没有具有相同键的some
对象,则添加具有新ID的新对象。>
const arr1 = [{ id: 1, age: 10 }, { id: 2, age: 12 }]
const arr2 = [3, 4, 1, 5, 2]
console.log(arr2.reduce((p,c) => (!p.some(x => x.id == c) && p.push({id:c}), p), arr1))