Ich habe ein JSON-Objekt, das alphabetisch nach dem Wert und nicht nach dem Schlüssel sortiert ist. Wenn ich jedoch _.each
verwende, um das Objekt in das Formular $select
zu injizieren, greift das Objekt auf den Schlüssel zurück. Weiß jemand wie ich das verhindern kann.Underscore _.each Funktion - Sortierung nach Wert nicht Schlüssel
Antwort
Sie könnten über ein JavaScript-Objekt sprechen, da JSON eine Zeichenfolgendarstellung von Daten darstellt, die der JavaScript-Syntax ähnelt.
Wenn Sie ein Objekt haben, kann die Reihenfolge der Elemente nicht garantiert werden. Sie können es nur sortieren, indem Sie ein Array verwenden, bei dem Sie Ihre Datenstruktur ändern müssen.
Hoffe, dass die folgenden Link beantwortet Ihre Frage auch: Does JavaScript Guarantee Object Property Order?
ein JavaScript-Objekt ist nur ein hashmap von Schlüssel/Wert-Paare, kann es nicht (im Gegensatz zu einem Array) sortiert werden. Auf der anderen Seite können Sie ein JSON-Objekt in einer Datei "sortieren", indem Sie Zeichen umher bewegen. Aber wenn Sie das JSON als Objekt lesen und es in den Speicher laden, verlieren Sie diese falsche "Sortierung" und durchqueren die Schlüssel basierend darauf, wie die JS-Engine implementiert wurde.
der Unterstrich _.each
Funktion ist nur ein Wrapper für eine for
Schleife, die Ihren Schlüssel/Wert-Paare läuft über und führt eine Funktion auf ihnen. Sie sollten _.each
verwenden, um Arrays zu durchlaufen.
TL; DR: Sie können nicht sortieren Objekte
aber was man kann es Werte in ein Array übertragen tun und dort zu sortieren, indem die native Array.prototype.sort Funktion.