如何在forEach循环中从数组中删除元素?

11 浏览
0 Comments

如何在forEach循环中从数组中删除元素?

我试图在一个forEach循环中删除数组中的一个元素,但是我遇到了一些问题,无法解决。

这是我目前尝试的代码:

review.forEach(function(p){
   if(p === '\u2022 \u2022 \u2022'){
      console.log('YippeeeE!!!!!!!!!!!!!!!!')
      review.splice(p, 1);
   }
});

我知道它进入了if语句,因为我在控制台中看到了YippeeeeeE!!!!!!!!!!!!!

我的问题:我知道我的循环和条件逻辑没问题,但我尝试从数组中移除当前元素的操作失败了。

更新:

尝试了Xotic750的答案,但元素仍未被删除:

下面是我代码中的函数:

review.forEach(function (item, index, object) {
    if (item === '\u2022 \u2022 \u2022') {
       console.log('YippeeeE!!!!!!!!!!!!!!!!')
       object.splice(index, 1);
    }
    console.log('[' + item + ']');
});

这是数组仍未被删除的输出:

[Scott McNeil]
[reviewed 4 months ago]
[ Mitsubishi is AMAZING!!!]
YippeeeE!!!!!!!!!!!!!!!!
[• • •]

很明显它按照指示进入了if语句,但很明显[• • •]仍然存在。

0