我有一个数组,一些项目将被删除;但是有些循环仍在运行,所以我想简单地跳过删除对象的地方
我知道(i in array)的语法应该这样做,因为它迭代索引,但是我应该如何删除我的项呢?因为当我做数组[4] = null时,我只是不关心并继续尝试使用4的值。
我也试过检查是否但是没有成功...... 谢谢
答案 0 :(得分:2)
如果您想在不遗漏的情况下删除项目,则应使用.splice()
myarray.splice(idx, 1);
但是,如果您说想要那些洞,但想跳过它们,那么您可以使用delete
删除项目(留下一个洞) ,并使用.forEach()
进行迭代,跳过漏洞。
delete myarray[idx];
// ...
myarray.forEach(function(item, i) {
// holes will be skipped
});
要支持IE8及更低版本等旧版浏览器,您需要为forEach()
添加兼容性补丁。
.forEach()
(忽略较短的补丁。这是一个糟糕的不合规版本。)