So löschen Sie bestimmte Array-Elemente innerhalb einer foreach-Schleife in Javascript

8
%Vor%

Wie entferne ich alle "Birnen" -Früchte von diesem Array?
Ich habe folgendes versucht, aber immer noch eine Birne übrig:

%Vor%

Ausgaben:

%Vor%

Was mache ich falsch? Live-Demo: Ссылка

    
Nick 15.06.2012, 21:25
quelle

10 Antworten

25
%Vor%     
Esailija 15.06.2012, 21:27
quelle
7
%Vor%     
Tom 15.06.2012 21:28
quelle
3

Wenn Sie Elemente aus einem Array entfernen, während Sie darüber iterieren, würden Sie im Allgemeinen rückwärts laufen, so dass der aktuelle Index beim Entfernen von Elementen keine Elemente überspringt:

%Vor%     
Tuan 15.06.2012 21:34
quelle
2

Wenn es im ursprünglichen Array viele "falsche" Elemente gibt, schlage ich vor, dass Sie zumindest kein direktes Array verwenden, sondern alle "richtigen" Elemente in einem neuen Array sammeln:

%Vor%     
raina77ow 15.06.2012 21:32
quelle
1
%Vor%

6.4. Aufzählung

Da JavaScript-Arrays wirklich Objekte sind, kann die for in -Anweisung dazu verwendet werden, alle Eigenschaften eines Arrays zu durchlaufen. Leider übernimmt for in keine Garantie für die Reihenfolge der Eigenschaften und die meisten Array-Anwendungen erwarten, dass die Elemente in numerischer Reihenfolge erzeugt werden. Außerdem gibt es immer noch das Problem mit unerwartete Eigenschaften, die aus der Prototypkette ausgebaggert werden.

Glücklicherweise vermeidet die herkömmliche for-Anweisung diese Probleme. JavaScript ist für Statement ähnlich das in den meisten C-ähnlichen Sprachen. Es wird von drei Klauseln gesteuert: der erste initialisiert die Schleife, der zweite ist die while-Bedingung und der dritte die Inkrementierung:

%Vor%     
user278064 15.06.2012 21:33
quelle
0
%Vor%

Beachten Sie, dass Array.indexOf vom IE8 und darunter nicht unterstützt wird. -_-

    
Lain inVerse 12.08.2013 03:05
quelle
0

Warum nicht die Liste rückwärts durchlaufen? Wenn Sie ein Element aus der Liste löschen und sich die Länge ändert, wird dadurch die Schleifenlogik nicht unterbrochen:

%Vor%     
rodrigo-silveira 24.10.2014 21:38
quelle
0

Wenn es nicht wichtig ist, rückwärts umzukehren, können Sie eine Kombination aus while und pop-function des Arrays verwenden

%Vor%     
Jobacca 29.05.2015 06:59
quelle
0

Sie könnten auch filter verwenden:

%Vor%     
pat 15.05.2017 16:39
quelle
-1
%Vor%

genießen

    
Dan Barzilay 15.06.2012 21:29
quelle

Tags und Links