我有以下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) 如果我使用splice()从数组中删除一个元素,如下所示:
arr.splice(i, 1);
Run Code Online (Sandbox Code Playgroud)
这是O(n)不是最糟糕的情况,因为它会在我之后移动所有元素?或者它是不变的时间,下面有一些链表魔术吗?