Durchlaufen von Arrays und Entfernen von Elementen, ohne die Schleife zu unterbrechen
In JavaScript kann das Durchlaufen eines Arrays und das Entfernen von Elementen aufgrund der schwierig sein Art und Weise, wie splice() funktioniert. Wenn ein Element mit splice() aus einem Array entfernt wird, wird das Array neu indiziert, was dazu führen kann, dass ein Index und eine veraltete zwischengespeicherte Länge übersprungen werden.
Um dieses Problem zu beheben, gibt es zwei elegante Lösungen :
Dekrementieren des Index nach dem Spleißen
Ein Ansatz besteht darin, den Schleifenindex i nach der Ausführung von a zu dekrementieren splice(). Durch Dekrementieren von i stellen wir sicher, dass die nächste Iteration das zuvor entfernte Element überspringt und so Lücken in der Schleife verhindert.
Iterieren in umgekehrter Reihenfolge
Alternativ können wir iterieren in umgekehrter Reihenfolge durch das Array. Wenn Sie mit dem letzten Index beginnen und i bei jeder Iteration dekrementieren, wird das Problem der Neuindizierung vermieden, da die entfernten Elemente bei höheren Indizes keine Auswirkungen auf die niedrigeren Indizes haben. Diese Methode ermöglicht eine effizientere und sauberere Schleife.
Beispiel:
Hier ist eine überarbeitete Version des Codes unter Verwendung der umgekehrten Iterationstechnik:
var i = Auction.auctions.length; while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
Dieser Ansatz wahrt die Integrität der Schleife, indem er in umgekehrter Reihenfolge iteriert und entfernte Elemente behandelt, ohne die verbleibenden Elemente zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der Schleife sicher aus einem JavaScript-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!