首页 >web前端 >js教程 >如何在 JavaScript 循环期间安全地删除数组项?

如何在 JavaScript 循环期间安全地删除数组项?

Susan Sarandon
Susan Sarandon原创
2024-12-24 05:43:20554浏览

How to Safely Remove Array Items During a Loop in JavaScript?

循环遍历数组并在不中断循环的情况下删除项目

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn