【发布时间】:2018-06-10 15:44:52
【问题描述】:
有没有很好的函数式方式在循环时删除 JS 数组中的元素?
我知道过滤器可以用来创建一个新数组:
var newArr = arr.filter((x) => x.foo > bar)
但是有没有办法在你去的时候真正从arr 中删除元素?
顺便说一句:我不能重新分配,这是 Vue 组件上的数据对象,所以我需要更新,而不是重新分配。
BTW2:这不是重复的。我知道如何使用普通的 JS 迭代来做到这一点。我正在寻找一种功能性的方式,而引用的答案不包含该方式。不是骗子。
【问题讨论】:
-
arr = arr.filter((x) => x.foo > bar)?? -
@Chiller 仍然会创建一个新数组。
-
我知道删除项目的唯一方法是在数组上向后循环,或者使用 reduce 创建一个新数组。
-
这是因为担心内存消耗吗?
-
@mtyson 我也有同样的问题.. 你有没有想出一个像你希望的那样优雅的解决方案?
标签: javascript arrays ecmascript-6