Wie man ein array Sortieren von Objekten in aufsteigender Reihenfolge der Anzahl?
Ich habe ein array von Objekten, wie die folgenden :
var array = {
"112" : {
"id": "3",
"name": "raj"
},
"334" : {
"id": "2",
"name": "john"
},
"222" : {
"id": "5",
"name": "kelvin"
}
}
Will ich jetzt Sortieren Sie das array in aufsteigender Reihenfolge der id
und dann wieder in der Reihe. Ich habe versucht, mit sort()
aber Sie konnten es nicht. Bitte helfen Sie, wie zu tun, so dass, wenn ich die Daten aus dem array kommt es sortiert.
- Werfen Sie einen Blick auf diese awesome website : sorting-algorithms.com
- Gibt es syntax-Fehler in Ihrem code, bitte korrigieren Sie Sie.
112 =
sollte122:
, whyleraj
und die anderen sollten string, es sei denn, Sie sind Variablen, aber ich denke, Sie sind es nicht. - das ist ein Objekt vom Objekte, nicht ein array von Objekten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass nicht ein array, ein Objekt ist (oder würde es, wenn es nicht für die syntax-Fehler (
=
sollte:
)). Es muss nicht eine Bestellung.Könnte man mit einem array statt (die aktuellen Namen für die Eigenschaft ein Wert eines Schlüssels auf der Teilobjekte).
Alternativ könnte man eine
for
Schleife zu bauen, die ein array mit den Schlüssel-Namen, dann Sortieren und verwenden Sie es als basis für den Zugriff auf das Objekt in Ordnung.JavaScript-Objekte sind ungeordnete per definition. Die Sprache-Spezifikation nicht einmal garantieren, dass, wenn Sie Durchlaufen die Eigenschaften eines Objekts zweimal in Folge, Sie kommen in der gleichen Reihenfolge das zweite mal.
Wenn Sie brauchen, Dinge zu bestellen, verwenden Sie ein array und die
Array.prototype.sort
Methode.Ist ein Objekt, aber Sie können ein array Sortieren ilke dies:
Arbeiten Demo: http://jsfiddle.net/BF8LV/2/
Hoffe, dies hilft,
code
Nicht viele Leute kennt, die
Array.sort
kann verwendet werden, die auf andere Arten von Objekten, aber Sie müssen eine length-Eigenschaft:Leider, das funktioniert nicht gut, wenn Sie Ihre "array" ist voll von "Löchern", so wie Euch.
Vorausgesetzt, Sie bedeutete Ihr code, um ein array von Objekten, das heißt:
Dann würden Sie in der Lage sein Sortieren nach id, indem man eine Funktion, um Arrays.sort (), vergleicht id:
Wie andere haben darauf hingewiesen, was Sie haben, ist ein Objekt mit Objekten, und nicht ein array.