Javascript:破坏性的array.filter()?

时间:2018-06-10 15:44:53

标签: javascript arrays ecmascript-6

循环时是否有一种很好的函数式方法可以删除JS数组中的元素?

我知道过滤器可用于创建新数组:

var newArr = arr.filter((x) => x.foo > bar)

但有没有办法在你去的时候实际删除arr中的元素?

BTW:我无法重新分配,这是Vue组件上的数据对象,所以我需要更新,而不是重新分配。

BTW2:这不重复。我知道如何使用正常的JS迭代来完成它。我正在寻找一种功能性的方法,参考的答案并不包含这一点。不是骗局。

2 个答案:

答案 0 :(得分:1)

只需重新分配Array

即可



let arr = [1,2,3,4,5];
arr = arr.filter(v => v < 3);
console.log(arr);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

为什么不简单地这样做

arr = arr.filter((x) => x.foo > bar)