Arrays durchlaufen und Elemente ohne Unterbrechungen entfernen
In JavaScript stellt die Verwendung der splice()-Methode zum Entfernen von Elementen aus einem Array häufig das Problem dar Herausforderung, das Array zu durchlaufen, ohne auf undefinierte Werte zu stoßen. Im bereitgestellten Code führt die Verwendung von splice() innerhalb der for-Schleife dazu, dass die Sekundeneigenschaft des Auktionselements undefiniert wird, was zu Fehlern führt.
Um dieses Problem zu beheben, ziehen Sie die folgenden Alternativen in Betracht:
1. Dekrementieren Sie den Schleifenindex nach splice()
Nachdem Sie ein Element mit splice() entfernt haben, können Sie den Schleifenindex (i) dekrementieren, um die Neuindizierung des Arrays zu kompensieren. Dadurch wird sichergestellt, dass die nächste Iteration vom richtigen Index aus fortgesetzt wird.
for (i = 0, len = Auction.auctions.length; i < len; i++) { auction = Auction.auctions[i]; Auction.auctions[i]['seconds'] --; if (auction.seconds < 0) { Auction.auctions.splice(i, 1); i--; // Decrement the loop index } }
2. In umgekehrter Reihenfolge iterieren
Durch das Durchlaufen des Arrays in umgekehrter Reihenfolge wirkt sich die Neuindizierung nach splice() nicht auf die verbleibenden Elemente in der Iteration aus.
var i = Auction.auctions.length while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
Durch Übernahme Mit einem dieser Ansätze können Sie Arrays effizient durchlaufen und Elemente entfernen, ohne auf das Problem undefinierter Werte zu stoßen und die Integrität des Schleifenprozesses sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie entferne ich Array-Elemente in JavaScript während der Schleife sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!