【发布时间】:2021-03-31 20:05:51
【问题描述】:
let aUsers=[{"name":"goku"},{"name":"cell"},{"name":"vegeta"},{"name":"freezer"}]
aUsers.forEach((user,i)=>{
if(user.name=="cell" || user.name=="freezer"){
aUsers.splice(i,1); //this causes a problem..
}
})
console.log(aUsers);
我知道我应该使用filter,但我不知道如何在运行foreach 的同时让我的元素成为removed。
我会知道如何解决这个问题,但是在运行foreach 之后,也许有更好的方法。
我该怎么做?
【问题讨论】:
-
因为
filter返回一个新的数组,你可以将aUsers分配给过滤函数。aUsers = aUsers.filter( /.../ );. -
具有讽刺意味的是,您的示例有效 - 巧合。或许您可以修改示例以删除两个相邻的元素,例如尝试检查
if(user.name=="cell" || user.name=="vegeta"),然后您将实际说明问题。
标签: javascript