ループを中断せずに配列をループし、項目を削除する
反復を中断せずに配列を効果的にループし、項目を削除するには、代替アプローチが必要です。 splice() を使用してループ中に項目を削除する場合、配列のインデックスの再作成によって問題が発生する可能性があります。
解決策の 1 つは、項目を削除した後にループ カウンター (i) をデクリメントして、再インデックスを補正することです。 -indexing.
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 to compensate for re-indexing } }
または、項目を削除してもその前にある項目には影響しないため、逆の順序で反復しても問題を解決できる可能性があります。
var i = Auction.auctions.length while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
これらの戦略の 1 つを採用すると、配列を効果的にループし、項目を削除し、予期せずループを中断することなく連続反復を維持できます。
以上がJavaScript のループ中に配列項目を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。