Ich habe ein Json-Objekt in Javascript wie
var json = {"20121207":"13", "20121211":"9", "20121213":"7", "20121219":"4"};
ohne den Namen des letzten Schlüssels zu kennen. (Die Schlüssel sind in aufsteigender Reihenfolge)
Wie kann ich den Wert (und den Schlüssel) des letzten Elements lesen?
Object.keys
(ES5, shimmable) gibt ein Array der Objektschlüssel zurück. Wir sortieren sie dann und greifen nach dem Letzten.
Sie können die Reihenfolge in einer for..in
-Schleife nicht sicherstellen, daher können wir uns nicht vollständig darauf verlassen. Aber wie Sie sagten, sind die Schlüssel in aufsteigender Reihenfolge, wir können sie einfach sortieren.
Wenn Sie alte JS-Engines nicht unterstützen müssen:
%Vor%Gehen Sie nicht davon aus, dass die Schlüssel in Ordnung sind. Nimm die Schlüssel, sortiere sie und nimm den größten Wert nach der Sortierung.
ECMCA-Skriptspezifikationen (JavaScript-Spezifikationen) erfordern nicht, dass Browser die Reihenfolge der Eigenschaften eines Objekts beibehalten.
Bezieht sich auf das, was die ECMCA 5 Spezifikationen sagen:
"Die Mechanik und Reihenfolge der Aufzählung der Eigenschaften (Schritt 6.a in der erste Algorithmus, Schritt 7.a in der zweiten) ist nicht spezifiziert. "
Bezieht sich auf die Methode Object.keys:
"Wenn eine Implementierung eine bestimmte Aufzählungsreihenfolge für die for-in-Anweisung muss dieselbe Aufzählungsreihenfolge in Schritt 5 verwendet werden von diesem Algorithmus. "
Es macht keinen Sinn zu sagen, die letzte definierte Eigenschaft zu bekommen. Sie können die Eigenschaften basierend auf dem Namen sortieren und den letzten erhalten, aber wenn Sie Ordnung haben wollen, dann behalten Sie ein Array bei.
Tags und Links javascript json