我有这段代码,它应该遍历数组中的每个项目,根据某些条件删除项目:
//iterate over all items in an array
//if the item is "b", remove it.
var array = ["a", "b", "c"];
array.forEach(function(item) {
if(item === "b") {
array.splice(array.indexOf(item), 1);
}
console.log(item);
});
期望的输出:
a
b
c
实际输出:
a
b
显然,原生 forEach 方法不会在每次迭代后检查该项目是否已被删除,因此如果是,则跳过下一个项目。除了覆盖 forEach 方法或实现我自己的类来代替数组之外,是否有更好的方法来做到这一点?
编辑 - 进一步我的评论,我想解决方案是只使用标准 for 循环。如果您有更好的方法,请随时回答。