循環遍歷數組並不間斷地刪除項目
在JavaScript 中,使用splice() 方法從數組中刪除項目通常會出現以下情況:迭代數組而不遇到未定義值的挑戰。在提供的程式碼中,在 for 迴圈中使用 splice() 會導致拍賣項目的秒數屬性變得未定義,從而導致錯誤。
要解決此問題,請考慮以下替代方案:
1。在 splice() 之後遞減循環索引
使用 splice() 刪除項目後,您可以遞減循環索引 (i) 以補償數組的重新索引。這可確保下一次迭代從正確的索引繼續。
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.反向迭代
透過逆序迭代數組,splice()之後的重新索引不會影響迭代中的剩餘項目。
var i = Auction.auctions.length while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
透過採用其中一種方法,您可以有效地迭代數組並刪除項目,而不會遇到未定義值問題並確保循環過程的完整性。
以上是如何在循環時安全地刪除 JavaScript 中的陣列項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!