首页 > 解决方案 > 动态合并数组中的对象

问题描述

我无法重现合并作为这个流行的答案:如何动态合并两个 JavaScript 对象的属性?. 但是,我认为我的情况与 OP 没有显着不同。为了便于说明,这是我的数据结构:

var tempList1 = [
   {'manager':'John', 'x1':0, 'y1':0, 'x2':1, 'y2':1},
   {'manager':'Julie', 'x1':0, 'y1':0, 'x2':1, 'y2':1},
...
];

var tempList2 = [
   {'manager':'John', 'x3':0, 'y3':0, 'x4':1, 'y4':1},
   {'manager':'Julie', 'x3':0, 'y3':0, 'x4':1, 'y4':1},
...
];

合并后的期望结果是:

var combinedList = [
    {'manager':'John', 'x1':0, 'y1':0, 'x2':1, 'y2':1, 'x3':0, 'y3':0, 'x4':1, 'y4':1},
    {'manager':'Julie', 'x1':0, 'y1':0, 'x2':1, 'y2':1, 'x3':0, 'y3':0, 'x4':1, 'y4':1}
];

我的尝试是:

          var combinedList = [];
          for (var k = 0; k < managerList.length; k++)
              let merged = {...tempList1[k],...tempList2[k]}
              combinedList.push(merged);

              console.log(combinedList)

但这给了我错误:

未捕获的 SyntaxError:词法声明不能出现在单语句上下文中

问题

我应该如何调整我的代码,以便我可以组合我的数组中的每个对象(如上所示)?

标签: javascriptobject

解决方案


推荐阅读