2017-06-14 2 views
0

Wie komme ich aus:Return Objekte mit eindeutigen Schlüssel aus Array von Objekten

let items = [ { id: 1, name: 'one'}, { id: 60, name 'sixty'}]

zu:

{ 1: { id: 1, name: 'one' }, 60: { id: 60, name: 'sixty' } }

ich nicht wirklich die Duplizierung der ID ausmacht für diese Frage.

Ich habe versucht, dies:

items.reduce((allItems, item) => { 
    return allItems[item.id] = item; 
}, {}); 

Von: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce?v=control#Counting_instances_of_values_in_an_object

Aber es funktioniert nicht wie das Beispiel ... schlägt vor, tut für Arrays von Einzelstücken nur Arbeit reduzieren, nicht Objekte ?

Irgendwelche Vorschläge, wie man einen Schlüssel von einer Karte oder irgendeine lodash Funktion zurückbringt, die das für mich tun kann? . (Das heißt praktisch [item.id]: { ...item} zurückkehren, aber dann abflachen sie wie das oben genannte Ziel Ergebnis, mit eindeutigen Schlüssel

Antwort

0

Anscheinend sollte ich es nicht sofort zurück:

items.reduce((allItems, item) => { 
    allItems[item.id] = item; 
    return allItems; 
}, {}); 
Verwandte Themen