循環遍歷數組並在不中斷循環的情況下刪除項目
要有效地循環遍歷數組並刪除項目而不中斷迭代,替代方法是必要的。當使用 splice() 在循環期間刪除項目時,數組的重新索引可能會導致問題。
一個解決方案是在刪除項目後遞減循環計數器(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); } }
透過採用其中一種策略,您可以有效地循環數組、刪除項目並保持連續迭代,而不會意外中斷循環。
以上是如何在 JavaScript 循環期間安全地刪除數組項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!