OK , jak zapewne wiesz, javascript ma funkcję sort () do sortowania tablic, ale nic dla obiektu ...
W takim przypadku musimy jakoś pobrać tablicę kluczy i posortować je, dlatego api daje ci większość obiektów w tablicy, ponieważ tablica ma więcej rodzimych funkcji do zabawy z nimi niż dosłownie obiekt, szybkim rozwiązaniem jest użycie Object.key, które zwracają tablicę kluczy obiektowych, tworzę ES6 poniżej, która wykonuje za ciebie zadanie, używa natywnych funkcji sort () i redukuj () w javascript:
function sortObject(obj) {
return Object.keys(obj)
.sort().reduce((a, v) => {
a[v] = obj[v];
return a; }, {});
}
A teraz możesz użyć tego w następujący sposób:
let myObject = {a: 1, c: 3, e: 5, b: 2, d: 4};
let sortedMyObject = sortObject(myObject);
Sprawdź sortedMyObject i możesz zobaczyć wynik posortowany według następujących kluczy:
{a: 1, b: 2, c: 3, d: 4, e: 5}
Również w ten sposób główny obiekt nie zostanie dotknięty i faktycznie otrzymamy nowy obiekt.
Tworzę również poniższy obrazek, aby uczynić kroki funkcji bardziej wyraźnymi, na wypadek, gdyby trzeba było trochę je zmienić, aby działały po swojemu: