javascript - 如何遍历数组并删除 JavaScript 中的元素

标签 javascript iteration bounds

<分区>

我有一个元素数组,需要从中删除某些元素。问题是 JavaScript 似乎没有 for each 循环,如果我使用 for 循环,我会遇到问题,基本上是尝试检查超出数组边界的元素,或者由于索引更改而丢失数组中的元素.让我告诉你我的意思:

var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = 0; i < elements.length; i++){
    if(elements[i] == 5){
        elements.splice(i, 1);
    }
}

问题是当元素[1]被移除时,元素[2]变成了元素[1]。所以第一个问题是某些元素从未被检查过。另一个问题是 .length 发生变化,如果我对边界进行硬编码,那么我可能会尝试检查数组边界之外的元素。那么,做这件极其简单的事情的最佳方法是什么?

最佳答案

从头开始!

var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = elements.length - 1; i >= 0; i--){
    if(elements[i] == 5){
        elements.splice(i, 1);
    }
}

关于javascript - 如何遍历数组并删除 JavaScript 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352546/

相关文章:

javascript - jQuery UI 对话框重用行为

java - 我使用 insertSorted 方法对随机整数进行排序,但现在我的代码没有按应有的方式迭代 25 次,我做错了什么?

rust - 整数类型的Rust特征范围

android - 在 Android 上获取给定边界的 map 缩放级别,就像在 JS Google Maps API 上一样 : map. getBoundsZoomLevel(bounds)

java - 检查父级是否包含hash标签-跨域

javascript - jQuery 获取某个类的页面上每个 div 的高度

javascript - 为什么这仍然返回一个 promise ?

r - 如何在数据帧计算中用矢量函数替换 R 中的 for 循环?

python - 将for循环转换为python中的while循环

Java 泛型 - 意外边界