Javascript:合并2个数组(不同的属性)

时间:2018-06-14 14:57:59

标签: javascript arrays merge lodash

我有一个严格的要求需要你的建议。

我有2个阵列:

var array1 = [{ 'x': 1, 'z': 2 }, { 'x': 2, 'z': 1 }];
var array2 = [{ 'x': 1, 'y': 1 }, { 'x': 2, 'y': 3 }];

要求:将2个数组合并为一个格式为:

[{ 'x': 1, 'y': 1, 'z': 2 }, { 'x': 2, 'y': 3 , 'z': 1 }]

我已浏览过lodash图书馆,其功能包括' merge'或者' union'不为此目的服务。

欢迎并赞赏任何解决方案

2 个答案:

答案 0 :(得分:1)

尝试以下

var array1 = [{ 'x': 1, 'z': 2 }, { 'x': 2, 'z': 1 }];
var array2 = [{ 'x': 1, 'y': 1 }, { 'x': 2, 'y': 3 }];

let result = array1.map((o,i) => ({...o, ...array2[i]}));
console.log(result);

答案 1 :(得分:1)

您可以使用Object.assign映射新对象。



var array1 = [{ 'x': 1, 'z': 2 }, { 'x': 2, 'z': 1 }],
    array2 = [{ 'x': 1, 'y': 1 }, { 'x': 2, 'y': 3 }],
    result = array1.map((o,i) => Object.assign(o, array2[i]));

console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }