javascript - 如何遍历收缩数组

标签 javascript arrays for-loop array-splice

假设我有这样一个数组:

myArray = ["a","b","c","d","e"]

我想遍历它以找到特定的值并将其删除。

for(var i=0;i<myArray.length;i++){
    if(myArray[i] == "b")
        myArray.splice(i,1)
}

问题是,拼接从数组中删除了项目,并且删除项目前面的所有项目都向下移动了一个索引号,因此 myArray.length 被实例化为 5 但在splice myArray 的长度仅为 4,for 循环失败,因为 myArray[4] 抛出 typeof 匹配错误在框架中。

我正在使用以这种方式工作的框架,这就是我使用这种项目删除技术的原因,我的问题是如何以正确的方式执行此操作?该框架使用 splice 方法,我正在使用 for 循环,所以我假设有正确的方法来解决这个问题?

最佳答案

反转循环:

for(var i=myArray.length-1;i>=0;i--){
    if(myArray[i] == "b")
        myArray.splice(i,1)
}

关于javascript - 如何遍历收缩数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284226/

相关文章:

c - 判断数组是升序、降序还是随机的程序(C语言)

r - 删除R中不同数据集中的多列

javascript - 更新 for 循环中的值/重置 for 循环?

javascript - Polymer HTML 导入自定义元素

c++ - C 风格数组与库接口(interface)的 std::array

php - 在 Javascript 循环中迭代 PHP 数组

shell - 根据条件无限循环运行具有 While 条件的 shell 脚本

javascript - 为什么此 JavaScript 会导致页面在 Chrome 的选项卡中打开

javascript - 如何通过使用 ajax 从数据库获取 json 数据,使用 javascript 将 case 添加到 switch 语句?

javascript - 如何复制指针事件 :none in JavaScript 的行为