durch Arrays schauen und Elemente ohne Unterbrechungen entfernen
in JavaScript unter Verwendung der Methode Splice (), um Elemente aus einem Array zu entfernen, zeigt häufig die Herausforderung, die Array zu entfernen, ohne die ungedulierten Werte zu entfernen. In dem angegebenen Code führt die Verwendung von Splice () innerhalb der für Schleife dazu, dass die Sekundeneigenschaft des Auktionselements undefiniert wird und zu Fehlern führt.
, um dieses Problem zu lösen, betrachten Sie die folgenden Alternativen:
1. Dekrementieren Sie den Loop-Index nach splice ()
Nachdem Sie einen Element mit Splice () entfernt haben, können Sie den Loop-Index (i) verringern, um die Neuindexierung des Arrays zu kompensieren. Dies stellt sicher, dass die nächste Iteration vom richtigen Index 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. ITREATE IT REVERSURE
Durch Iterieren durch das Array in umgekehrter Reihenfolge wird die Redexierung nach Splice () die verbleibenden Elemente in der Iteration nicht beeinflusst. während (i--) { ... Wenn (...) { Auktion.AUCTIONS.SPLICE (i, 1); } }
var i = Auction.auctions.length while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3