2016-10-31 3 views
1

möchte die Objekte von Arrays zusammenführen.verschmelzen das Objekt von zwei Arrays, die verschachtelt sind

var arr1 = [ 
    {nested: {first: "aaa"}}, 
    {nested: {first: "bbb"}}, 
    {nested: {first: "ccc"}} 
]; 
var arr2 = [ 
    {nested: {last: "zzz"}}, 
    {nested: {last: "yyy"}} 
]; 

versucht, auf diese Weise ohne Erfolg zu fusionieren: Das

arr1.map((item, i) => { 
    return Object.assign({}, 
    {firstName: item.nested.first}, 
    {lastName: arr2[i].nested.last}) 
}) 

möchte:

[ 
    {first: "aaa", last: "zzz"}, 
    {first: "bbb", last: "yyy"} 
    {first: "ccc"} 
]; 

Antwort

3

Sie werden laufen müssen und die Werte abbilden zurück zum Zusammenführen jedes Objekts in den Arrays

var arr1 = [ 
 
    {nested: {first: "aaa"}}, 
 
    {nested: {first: "bbb"}}, 
 
    {nested: {first: "ccc"}} 
 
]; 
 
var arr2 = [ 
 
    {nested: {last: "zzz"}}, 
 
    {nested: {last: "yyy"}} 
 
]; 
 

 
var arr3 = arr1.map((obj,index) => { 
 
    return Object.assign({}, obj.nested, arr2[index] && arr2[index].nested||{}); 
 
}); 
 

 
console.log(arr3)

Beachten Sie, dass dies das erste Array übernimmt länger ist als die zweite, wenn das nicht gegeben ist, dann würden Sie haben die Länge zu überprüfen und mit der größten Länge mit dem Array beginnen.

+0

ja, das ist es. Sie haben hinzugefügt: || {} Am Ende. du Slick Bastard du ... danke :) –

Verwandte Themen