Durchstreichen Sie das Array beim Entfernen von Elementen

8

Ich frage mich, ob und was eine zuverlässige und / oder Standardmethode ist, ein Array zu durchlaufen, dessen Länge sich innerhalb der Schleife ändert. Ich frage, weil ich am Ende jedes Mal eine andere Methode auswähle, um dies zu tun, z. B.

%Vor%

oder

%Vor%

Dies ist die Art, wie ich mich dabei befinde, aber ich bin neugierig, ob es einen Standardansatz gibt.

    
rob-gordon 26.06.2013, 12:04
quelle

2 Antworten

23

Ich finde es einfacher, in die andere Richtung zu iterieren:

%Vor%

Auf diese Weise müssen Sie die Schrittweite beim Entfernen nicht ändern.

Viele Entwickler, insbesondere diejenigen, die sich vor JavaScript nicht mit C-ähnlichen Sprachen beschäftigt haben, finden es verwirrend, mit den Feinheiten des Dekrement-Operators umzugehen. Die Schleife, die ich geschrieben habe, kann auch als

geschrieben werden %Vor%     
Denys Séguret 26.06.2013, 12:05
quelle
0

Wie auch immer Sie es wählen, das Starten in umgekehrter Reihenfolge und das Herunterzählen ist am einfachsten. Es hängt auch davon ab, ob Ihr Array spärlich ist und ob es sparsam sein soll. Am einfachsten ist es, sich selbst eine wiederverwendbare Funktion und eine eigene Bibliothek zu erstellen. Du könntest das tun. Wenn Sie compress auf true setzen, wird Ihr Array zu einem kontinuierlichen und nicht zu einem spärlichen Array. Diese Funktion entfernt alle übereinstimmenden Vorkommen des Werts und gibt ein Array der entfernten Elemente zurück.

Javascript

%Vor%

Ausgabe

%Vor%

Auf jsfiddle

    
Xotic750 26.06.2013 13:01
quelle

Tags und Links