gpt4 book ai didi

javascript - 删除元素时循环遍历数组

转载 作者:可可西里 更新时间:2023-11-01 02:53:12 26 4
gpt4 key购买 nike

我想知道迭代长度在循环内变化的数组的可靠和/或标准方法是否以及什么是。我问是因为每次我想做的时候我都会选择不同的方法来做这件事,例如

for ( var i = 0; i < myarray.length; i++ ) {
if (myarray[i] === 'something') {
myarray.splice(i, 1);

// *to avoid jumping over an element whose index was just shifted back to the current i
i--;
}
}

var i = 0;
while (myarray[i]) {
if (myarray[i] === 'something') {
myarray.splice(i, 1);
} else {
i++;
}
}

这些是我发现自己这样做的方式,但我很好奇是否有标准方法。

最佳答案

我发现在另一个方向上迭代更简单:

for (var i=myarray.length; i--; ) {
if (myarray[i] === 'something') myarray.splice(i, 1);
}

这样您就不必在删除时更改增量。

许多开发人员,尤其是那些在 JavaScript 之前没有接触过类 C 语言的开发人员,发现处理递减运算符的微妙之处时感到困惑。我写的循环也可以写成

for (var i=myarray.length-1; i>=0; i--) {

关于javascript - 删除元素时循环遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17319511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com