[英]How to merge 2 array of Objects?
我有以下 2 个对象数组的代码,我喜欢它应该合并的方式是:
let arrofObj1 = [
{
apple: 17,
mango: 15,
},
{
apple: 20,
mango: 29,
},
];
let arrofObj2 = [
{
banana: 60,
pear: 19,
},
{
banana: 50,
pear: 39,
},
];
let outPutIwant = [
{
apple: 17,
mango: 15,
banana: 60,
pear: 19,
},
{
apple: 20,
mango: 29,
banana: 50,
pear: 39,
},
];
注意:在添加之前,每个数组中可能有 2 个以上的对象,但这就是我希望它们添加的方式。 谁能告诉我我该怎么做? 提前致谢
您可以通过在各个项循环arrofObj1
并在同一索引处获取对象arrofObj2
,然后使用Object.assign()
以在复制所有枚举的属性。
let arrofObj1 = [{ apple: 17, mango: 15 }, { apple: 20, mango: 29 } ] let arrofObj2 = [{ banana: 60, pear: 19 }, { banana: 50, pear: 39 } ] arrofObj1.forEach((e, i)=>Object.assign(e, arrofObj2[i])) console.log(arrofObj1);
您可以创建这样的函数。 请注意,此函数假定您的两个数组各自包含相同数量的对象。
var arrofObj1 = [ { apple: 17, mango: 15, }, { apple: 20, mango: 29, }, ]; var arrofObj2 = [ { banana: 60, pear: 19, }, { banana: 50, pear: 39, }, ]; function mergeByPosition(arr1, arr2) { let arrResult = []; for(let i = 0; i < arr1.length; i++) { const objResult = { ...arr1[i], ...arr2[i] }; arrResult.push(objResult); } return arrResult; } console.log(mergeByPosition(arrofObj1, arrofObj2));
function merge(arr1, arr2) {
return arr1.map((item, index) => {
return { ...item, ...arr2[index] };
});
}
这是一个非常简单的映射和合并问题。
const result = arrofObj1.map((obj, index) => ({
...obj,
...arrofObj2[index]
}))
这是一种方法:
const outPutIwant =
arrofObj1.map((a, i) =>
Object.assign({}, a, arrofObj2[i])
);
这会遍历arrofObj1
(使用Array.map
),并且对于每个这样的项目a
,使用Object.assign
制作其内容的副本,并从arrofObj2
分配相应的项目i
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.