2016-04-05 21 views
0

Sagen wir, ich habe 2 Arrays von Objekten und ich möchte ihre Objekte parallel verschmelzen. Zum BeispielVerschmelzen 2 Arrays von JavaScript-Objekten

var array = [{foo: 2} , {boo: 3}] 
var array2 = [{foo2: 2}, {boo2: 4}] 

Das Ergebnis wird

var array3 = [{foo:2,foo2:2},{boo:3,boo2:4}] 

sein Wie kann ich es in Javascript?

Antwort

1

Sie können durch eine Anordnung durchqueren und einen Punkt holen und das Element aus dem anderen Array holen und sie dann fusionieren .

var array = [{foo: 2} , {boo: 3}]; 
 
var array2 = [{foo2: 2}, {boo2: 4}]; 
 

 
var _o = array.map(function(obj1, i){ 
 
    
 
    var obj2 = array2[i]; 
 
    for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; } 
 
    return obj1; 
 

 
}); 
 

 
// _o is the final array 
 

 
alert(JSON.stringify(_o));

1

Sie sollten eine lodash aussehen:

var users = { 
 
    'data': [{ 'user': 'barney' }, { 'user': 'fred' }] 
 
}; 
 

 
var ages = { 
 
    'data': [{ 'age': 36 }, { 'age': 40 }] 
 
}; 
 

 
_.merge(users, ages); 
 
// → { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }

Lodash doc for merge

+1

kann dies nicht mit nativen js getan werden? – Jai

+0

natürlich, aber Sie müssen es selbst implementieren dann –

+0

dann warum ** lodash **? Da OP nicht lodash markiert. – Jai