656 Stimmen

Schleife durch Array und Entfernen von Elementen, ohne die for-Schleife zu unterbrechen

Ich habe die folgende for-Schleife, und wenn ich verwenden splice() um ein Element zu entfernen, erhalte ich die Meldung, dass "Sekunden" nicht definiert ist. Ich könnte überprüfen, ob es undefiniert ist, aber ich denke, es gibt wahrscheinlich einen eleganteren Weg, dies zu tun. Der Wunsch ist es, einfach ein Element zu löschen und weiterzumachen.

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);
    }           
}

-1voto

Löschen von Parametern

        oldJson=[{firstName:'s1',lastName:'v1'},
                 {firstName:'s2',lastName:'v2'},
                 {firstName:'s3',lastName:'v3'}]

        newJson = oldJson.map(({...ele}) => {
          delete ele.firstName;
          return ele;
          })

es löscht und und erstellen Sie neue Array und wie wir sind mit Spread-Operator auf jedes Objekt so die ursprüngliche Array-Objekte sind auch bleibt unversehrt

-9voto

user8533067 Punkte 1

Sie können einfach durchsehen und verwenden shift()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X