Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:破坏性数组.filter()?_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript:破坏性数组.filter()?

Javascript:破坏性数组.filter()?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,在循环的同时删除JS数组中的元素有没有一种好的函数式方法 我知道过滤器可用于创建新阵列: var newArr = arr.filter((x) => x.foo > bar) 但是有没有一种方法可以在运行时从arr中删除元素 顺便说一句:我不能重新分配,这是Vue组件上的数据对象,所以我需要更新,而不是重新分配 顺便说一句:这不是重复的。我知道如何用普通的JS迭代来实现它。我正在寻找一种功能性的方法,而引用的答案并不包含这一点。不是重复。只需重新分配数组 设arr=[1,2,3

在循环的同时删除JS数组中的元素有没有一种好的函数式方法

我知道过滤器可用于创建新阵列:

var newArr = arr.filter((x) => x.foo > bar)
但是有没有一种方法可以在运行时从
arr
中删除元素


顺便说一句:我不能重新分配,这是Vue组件上的数据对象,所以我需要更新,而不是重新分配


顺便说一句:这不是重复的。我知道如何用普通的JS迭代来实现它。我正在寻找一种功能性的方法,而引用的答案并不包含这一点。不是重复。

只需重新分配
数组

设arr=[1,2,3,4,5];
arr=arr.filter(v=>v<3);
控制台日志(arr)为什么不干脆这样做呢

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

arr=arr.filter((x)=>x.foo>bar)
??@仍然创建新数组的冷却器。我知道删除项目的唯一方法是在数组上向后循环,或使用reduce创建新数组。这是因为担心内存消耗吗?@mtyson我有同样的问题。。您是否找到了一个像您希望的那样优雅的解决方案?我无法重新分配,这是Vue组件上的数据对象,因此我需要更新,而不是重新分配。