Ich habe so etwas wie dies in der Vergangenheit getan hat, etwas Ordnung zu einem Objekt zu bringen:
EUR: {
name: 'Europe',
countries: {
FR: {
name: 'France',
cities: {}
},
DE: {
name: 'Germany',
cities: {}
},
ES: {
name: 'Spain',
cities: {}
},
order : ['DE', 'ES', 'FR']
}
}
Jedes Objekt würde ein order
Schlüssel erhalten, die für dieses Objekt ein Array des Schlüssels ist. Wenn Sie dann über das Objekt iterieren, können Sie die Reihenfolge mit dem Schlüssel order
beibehalten. Der Nachteil ist, dass Sie nicht nur das Objekt pflegen (hinzufügen, aktualisieren, entfernen) müssen, sondern auch den Schlüssel order
.
Obwohl ich sehr empfehlen würde, ein Array von Objekten zu erstellen, anstatt die Objekte zu verschachteln, da Objektschlüssel keine Reihenfolge haben.
EUR: {
name: 'Europe',
countries: [{
name: 'France',
abbr: 'FR',
cities: {}
},{
name: 'Germany',
abbr: 'DE',
cities: {}
},{
name: 'Spain',
abbr: 'ES',
cities: {}
}]
}
Dann könnte man durch die EUR.countries
Array iterieren und sortieren, indem entweder die .name
-Taste oder die .abbr
Taste.
EDIT: Ich sollte wahrscheinlich tatsächlich die Iteration zeigen, um sie zu sortieren, oder?
Ich mache die Namen in Kleinbuchstaben, weil die Sortierfunktion mit Unicode funktioniert. Wenn es in der falschen Reihenfolge sortiert wird, drehen Sie einfach das Zeichen um.
Sie verpassen ein (oder mehrere) Array/s zum Sortieren. Objekte haben eigentlich keine Reihenfolge. –
Wenn Ihnen die Reihenfolge wirklich wichtig ist, verwenden Sie ein Array. JavaScript-Objekte Eigenschaften haben nicht wirklich Reihenfolge. – bobjoe
Ans: http://stackoverflow.com/questions/17684921/sort-json-object-in-javascript –