2017-01-17 6 views
0

Als Teil eines eckigen2/Typescript-Projekts habe ich ein Array von Objekten. Die Objekte enthalten eine Reihe von Schlüssel/Wert-Paaren, die aus einer Datenbank stammen. Dies wird dann auf der u-Seite in eine Tabelle umgewandelt (unter Verwendung von ag-grid-ng2).gibt es eine elegante Möglichkeit, Schlüssel/Wert zu einem Objekt aus einem Array hinzufügen

Die Kopfzeilen für die Tabelle sind dynamisch und in der DB festgelegt.

eine Aufgabe, die ich habe, ist ein Array von Schlüssel/Wert auf ein einzelnes Objekt auf der Karte, wie folgt aus:

const things = [ 
    { 
    field: 'some_table_header', 
    humanReadable: 'Some table header' 
    } 
]; 

verwandelt sich in:

const anObjectFullOfThings = { 
    some_table_header: 'Some table header' 
}; 

Ich fühle mich zur Zeit mein Code viel sein könnte elegante und prägnant, das heißt:

let anObjectFullOfThings = {}; 

things.forEach((thing) => { 
    anObjectFullOfThings[thing.field] = thing.humanReadable; 
}); 

ich es fühlen muss etwas besser sein, das heißt in die andere Richtung zu gehen i o Karte würde ver Object.keys usw. Gibt es eine alternative Möglichkeit, ein Array Objektschlüsseln zuzuordnen?

Antwort

2

Was Sie haben, ist in Ordnung.

let anObjectFullOfThings = things.reduce((obj, thing) => { 
    obj[thing.field] = thing.humanReadable; 
    return obj; 
}, {}); 

... aber es ist eine Frage des Geschmacks, zumal die reduce nicht wirklich etwas zu reduzieren, ist es einfach ist die ganze Schleife das gleiche Objekt zu verewigen:

würden Einige Leute reduce zu verwenden.

+0

erhalten Sie Ihren Punkt über den Geschmack. es passt wirklich sehr gut zum Rest der Implementierung. Vielen Dank – atmd

Verwandte Themen