循环遍历数组并在不中断循环的情况下删除项目
要有效地循环遍历数组并删除项目而不中断迭代,替代方法是必要的。当使用 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中文网其他相关文章!