Heim > Web-Frontend > js-Tutorial > Wie entferne ich Array-Elemente während der Iteration in JavaScript sicher?

Wie entferne ich Array-Elemente während der Iteration in JavaScript sicher?

Barbara Streisand
Freigeben: 2024-12-28 18:54:11
Original
230 Leute haben es durchsucht

How to Safely Remove Array Items During Iteration in JavaScript?

Array-Elemente innerhalb einer Schleife entfernen: Iteration beibehalten

Problem:

Das Durchlaufen eines Arrays und das Entfernen von Elementen kann zu Problemen führen unerwartetes Verhalten bei Verwendung der splice()-Methode. Wenn Elemente gelöscht werden, wird das Array neu indiziert, wobei möglicherweise nachfolgende Elemente übersprungen werden. Dies führt zu dem erwähnten undefinierten Variablenfehler.

Lösung:

Es gibt zwei Hauptansätze, um dieses Problem anzugehen:

  1. Dekrementieren des Schleifenindex: Nachdem Sie ein Element mit splice() entfernt haben, dekrementieren Sie den Schleifenindex (i--), um dies zu berücksichtigen Neuindizierung. Dadurch wird sichergestellt, dass die Schleife mit dem richtigen Element fortgesetzt wird.
  2. Umgekehrte Iteration: Anstatt in aufsteigender Reihenfolge (i) zu iterieren, iterieren Sie in umgekehrter Reihenfolge (i--), um die Auswirkungen von re zu vermeiden -Indizierung. Bei diesem Ansatz befindet sich das nächste zu untersuchende Element auf einem niedrigeren Index als das aktuelle, sodass eine Neuindizierung keine Auswirkungen darauf hat.

Beispiel:

var i = Auction.auctions.length;
while (i--) {
    ...
    if (...) {
        Auction.auctions.splice(i, 1);
    }
}
Nach dem Login kopieren

Durch die umgekehrte Iteration hat das Entfernen von Elementen keine Auswirkungen auf das nächste Element in der Iteration. Daher wird die Schleife ohne Unterbrechung fortgesetzt und Elemente nach Bedarf gelöscht.

Das obige ist der detaillierte Inhalt vonWie entferne ich Array-Elemente während der Iteration in JavaScript sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage