2017-10-28 1 views
0

So versuche ich group einige Reservierungen by business id. Ich suche nach einem Endergebnis wie folgt aus:TypScript assoziative Array

[[businessID1] => [Object1, Object2, Objekt3], [businessID2] => [Object1, Object2], [businessID3] => [Object1 , Object2]]

Mein aktueller Code:

let groups = new Array; 
this.reservations.map(function (value) { 
    groups[value.businessID] = value; 
}); 

So jetzt ist es nicht ... arbeiten, weil jedes Mal, dass Array-Schlüssel neu schreiben geht. Ich bin neu in der Welt von typescript/js, jede Hilfe wird geschätzt.

+0

Mögliche Duplikat dieser: https://stackoverflow.com/questions/41554523/group-by-javascript-object-keys-array –

Antwort

1

Wenn der Wert nicht vorhanden ist, erstellen Sie ein leeres Array, und fügen Sie den Wert, um es mit push:

if (groups[value.businessID] === undefined) { 
    groups[value.businessID] = []; 
} 
groups[value.businessID].push(value); 

Oder kompakter:

(groups[value.businessID] = groups[value.businessID] || []).push(value);