javascript - 在 JavaScript 中使用 "holes"遍历数组

标签 javascript arrays foreach iteration

我有一个数组,其中一些项目将被删除;但是一些循环仍在运行,所以我想简单地跳过我删除对象的地方

我知道 for(i in array) 的语法应该这样做,因为它在索引上迭代,但是我应该如何删除我的项目呢?因为当我执行 array[4] = null 时,我的 for 只是不关心并继续尝试使用 4 处的值。

我也尝试检查 !null 但没有成功... 谢谢

最佳答案

如果你想移除一个项目而不留下一个洞,你应该使用.splice()

myarray.splice(idx, 1);

但是如果你说你想要那里的洞,但想跳过它们,那么你可以使用delete删除项目(留下一个洞),并使用 .forEach() 进行迭代,它会跳过洞。

delete myarray[idx];

// ...

myarray.forEach(function(item, i) {
    // holes will be skipped
});

要支持 IE8 及更低版本的旧浏览器,您需要为 forEach() 添加兼容性补丁。

  • MDN .forEach() (忽略较短的补丁。这是一个糟糕的不兼容版本。)

关于javascript - 在 JavaScript 中使用 "holes"遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847769/

相关文章:

javascript - ('#' .dialog is not a function 错误在使用jQuery的.load()函数后

javascript - 检查 3 个值是否与 If 语句相同

php - 将行查询输出到 php 中的表

java - 二维数组串联

php foreach多个数组超时

Azure 数据工厂 - 为什么我的 ForEach block 不将我的存储过程计为事件?

javascript - Backbone.js 路由器 : hide in page modal instead of going back when back is pushed

javascript - 使用这段代码你能实现什么目的?

C++ 数组 - 限制和大小

r - 如何在 R 中的 "for loop"循环中转换 "foreach"?