Javascript |使用Object.assign()合并两个对象数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript |使用Object.assign()合并两个对象数组?相关的知识,希望对你有一定的参考价值。

我不太确定为什么Object.assign()无法提供预期的结果(请参阅底部的注释掉的部分)。我是否缺少该功能的某些内容,或者有更清洁的方法来执行此操作?

下面的代码使用变量“ i”到达for循环,但是没有使用变量“ x”到达第二个for循环。

const array_1 = [{property1:'a', property2:'b'}, {property1:'c', property2:'d'}];
const array_2 = [{property3:'w', property4:'x'}, {property3:'y', property4:'z'}];

const CombineArrays = (array_1, array_2) => {
  let combined_array = [];
  for (let i = 0; i < array_1.length; i++) {
    for (let x = 0; x < array_2; x++) {
      const newObj = Object.assign(array_1[i], array_2[x]);
      combined_array.push(newObj);
    }
  }
  return combined_array;
};

const result = CombineArrays(array_1, array_2);
console.log(result);


// expected result = [
//     {property1:'a', property2:'b', property3:'w', property4:'x'},
//     {property1:'a', property2:'b', property3:'y', property4:'z'},
//     {property1:'c', property2:'d', property3:'w', property4:'x'},
//     {property1:'c', property2:'d', property3:'y', property4:'z'}
// ]
// actual result = []
答案

您可以改用concat方法。

const array_1 = [{property1:'a', property2:'b'}, {property1:'c', property2:'d'}];
const array_2 = [{property3:'w', property4:'x'}, {property3:'y', property4:'z'}];

const result = array_1.concat(array_2);
console.log(result)

以上是关于Javascript |使用Object.assign()合并两个对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript 在HTML中使用 JavaScript

使用 javascript 确定 javascript 中的堆栈深度

仅使用javascript检查由javascript创建的元素是不是存在[重复]

JavaScript(js)基础

javascript 使用