为了账号安全,请及时绑定邮箱和手机立即绑定

js 如何一次性删除数组中的多个元素?

js 如何一次性删除数组中的多个元素?

犯罪嫌疑人X 2018-09-06 09:11:44
用for循环或者forEach遍历数组的话,在方法体内部splice都得不到正确的结果。有什么好的办法解决这个问题吗?var arr=[2,3,5,7]; arr.forEach(function(item,idx){   if(item===5){       arr.splice(idx,1);   } })
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞


方法一,用 filter

var arr = [2, 3, 5, 7];
arr = arr.filter(item => item !== 5);

方法二,用逆向循环

var arr = [2, 3, 5, 7];for (let i = arr.length - 1; i >= 0; i--) {    if (arr[i] === 5) {
        arr.splice(i, 1);
    }
}

forEach 不是什么时候都适用的,如果不改变原数组,用 map 比较合适,如果要直接改变原数组,用 for 比较合适。



查看完整回答
1 反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 5905 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信