相关疑难解决方法(0)

循环遍历数组并删除项目,而不会破坏循环

我有以下for循环,当我splice()用来删除一个项目时,我得到'秒'未定义.我可以检查它是否未定义,但我觉得这可能是一种更优雅的方式.希望简单地删除一个项目并继续前进.

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);
    }           
}
Run Code Online (Sandbox Code Playgroud)

javascript loops

430
推荐指数
10
解决办法
22万
查看次数

在Google Chrome中,array.splice()的时间复杂度是多少?

如果我使用splice()从数组中删除一个元素,如下所示:

arr.splice(i, 1);
Run Code Online (Sandbox Code Playgroud)

这是O(n)不是最糟糕的情况,因为它会在我之后移动所有元素?或者它是不变的时间,下面有一些链表魔术吗?

javascript big-o google-chrome v8 time-complexity

31
推荐指数
3
解决办法
1万
查看次数

标签 统计

javascript ×2

big-o ×1

google-chrome ×1

loops ×1

time-complexity ×1

v8 ×1