2017-02-07 1 views
1

ich ein Array von Objekten haben:Wie verwende ich die Reduce-Methode in LoDash? Oder Javascript ein Array von Objekten nehmen und machen Sie ein Objekt

` tempArray = [ 
     { name: 'Lion-O' }, 
     { gender: 'Male' }, 
     { weapon: 'Sword of Omens' }, 
     { status: 'Lord of the Thundercats' }, 
    ] 
` 

Objekt Ich möchte Transformation in:

`{ 
    name: 'Lion-O', 
    gender: 'Male,', 
    weapon: 'Sword of Omens', 
    status: 'Lord of the Thundercats' 
}` 

Ich habe versucht, in LoDash zu reduzieren zu verwenden;

const tempObj = _.reduce(tempArray, (r, v, k) => {   
    return r 
}) 

console.log(tempObj); 
//=> { name: 'Lion-O' } 

Ich bin mir nicht sicher, wie ich über das Array iterieren sollte? Betrachtet man Docs Beispiel, zeigt das Hinzufügen oder Drücken auf ein Array .. Ich möchte nur ein Objekt .. Ich weiß, dass es gemacht werden kann. Wenn ihr ein besserer Weg ist, bin ich dazu auch offen

Vielen Dank im Voraus.

+0

Siehe http://stackoverflow.com/questions/42068529/flatten-an-array-of-objects-containing-key- Werte/42068621 # 42068621 –

Antwort

0

tempArray = [ 
 
     { name: 'Lion-O' }, 
 
     { gender: 'Male' }, 
 
     { weapon: 'Sword of Omens' }, 
 
     { status: 'Lord of the Thundercats' }, 
 
    ] 
 
    
 
    var newObject = {}; 
 
    
 
    for (var index in tempArray) { 
 
    thisObject = tempArray[index]; 
 
    for (var key in thisObject) { 
 
     newObject[key] = thisObject[key]; 
 
    }      
 
    } 
 
    
 
    console.log(newObject);

+0

Das bringt den Job fertig Danke! – Dumas000

1

Kürzere gleichwertige Lösung:

const tempArray = [ 
    { name: 'Lion-O' }, 
    { gender: 'Male' }, 
    { weapon: 'Sword of Omens' }, 
    { status: 'Lord of the Thundercats' }, 
]; 
const newObj = Object.assign({}, ...tempArray); 
console.log(newObj); 
// Object {name: "Lion-O", gender: "Male", weapon: "Sword of Omens", status: "Lord of the Thundercats"} 
Verwandte Themen