我有一个数组,其中一些项目将被删除;但有些循环仍在运行,所以我想简单地跳过删除对象的地方
我知道 for(i in array) 的语法应该执行此操作,因为它会迭代索引,但是我应该如何删除我的项目呢?因为当我执行 array[4] = null 时,我的 for 只是不关心并继续尝试使用 4 处的值。
我也尝试检查是否为 !null 但没有成功......
谢谢
如果你想删除一个项目而不留下一个洞,你应该使用.splice()
myarray.splice(idx, 1);
但如果你说你want那里有洞,但想跳过它们,那么你可以使用delete
删除该项目(留个洞),并使用.forEach()
用于跳过漏洞的迭代。
delete myarray[idx];
// ...
myarray.forEach(function(item, i) {
// holes will be skipped
});
为了支持 IE8 及更低版本的旧版浏览器,您需要添加兼容性补丁forEach()
.
-
MDN .forEach() https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility (忽略较短的补丁。这是一个糟糕的不兼容版本。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)