Wie bekomme ich das letzte Element in einem JavaScript-Wert-Objekt mit einer for-Schleife?

9
%Vor%

Wenn ich ein

mache %Vor%

Es wird alle Werte in obj durchsehen. Wenn ich ein viel größeres Objekt habe, woher weiß ich, ob ich mich in der letzten Iteration dieser for Schleife befinde?

Ich stelle fest, dass Schlüsselwertpaare nicht wirklich geordnet sind, aber ich muss etwas in der allerletzten Iteration dieser Schleife erreichen und weiß nicht wie.

    
Joshua Soileau 12.01.2014, 15:50
quelle

6 Antworten

24

Verwenden Sie nicht for (key in obj) , es wird über alle aufzählbaren Eigenschaften einschließlich Prototypeigenschaften iterieren und kann zu unglaublich schrecklichen Dingen führen. Modernes JS hat eine spezielle Funktion, um mit Object.keys(...) nur die relevanten Schlüssel aus einem Objekt zu holen. Wenn Sie also var keys = Object.keys(obj) verwenden, um die Liste der Schlüssel als Array zu erhalten, können Sie dann darüber iterieren:

%Vor%

oder wählen Sie das letzte Element sofort

%Vor%

oder mit einem Slice:

%Vor%     
Mike 'Pomax' Kamermans 12.01.2014, 15:54
quelle
3

nur kürzer

%Vor%     
ceed 10.02.2015 13:42
quelle
2

Sie könnten alle durchlaufen und das letzte in einer Variablen speichern.

%Vor%

Aufgrund der Funktionsweise von JavaScript befindet sich der Schlüssel auch in der Schlüsselvariablen Ihrer Schleife, so dass die zusätzliche Variable nicht einmal benötigt wird.

%Vor%     
Pietu1998 12.01.2014 15:53
quelle
0

Sie könnten die Logik für das letzte Element außerhalb der Schleife einfügen:

%Vor%     
hugomg 12.01.2014 15:53
quelle
0

Sie könnten alle Schlüssel / Werte in eine leere Array-Variable schieben, die Sie erstellt haben. Greifen Sie dann mit array.length-1 auf das letzte Element im Array zu.

    
stephascript 06.09.2016 17:47
quelle
-2
%Vor%

Oder könnte Object.size (obj)

verwenden     
D. Rattansingh 12.01.2014 15:54
quelle

Tags und Links