繁体   English   中英

如何合并2个对象数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM