从Undercore中的数组中删除值
Remove value from array in Underscore
为什么下划线中没有一个超简单的remove
函数?
var arr = [1,2,3,4,5];
_.remove(arr, 5);
当然我可以使用reject
或without
。。。但它们都没有破坏性。我是不是错过了什么?
我想我会用老式的方法。。。
arr.splice(arr.indexOf(5), 1);
通过
说明
这是因为Undercore为JavaScript提供了函数概念,而函数编程的关键概念之一是引用透明度。
从本质上讲,函数没有副作用,并且将始终为给定的输入返回相同的输出。换句话说,所有函数都是纯函数。
对于给定的输入,从数组中删除元素确实是一个可预测的结果,但结果将是副作用,而不是返回值。因此,破坏性功能不符合功能范式。
解决方案
从Underscore中的数组中删除值的正确方法已经在这里的Stack Overflow上详细讨论过了。顺便说一句,当使用without
、reject
或filter
时,如果你只想从数组中删除一个项目的单个实例,你需要唯一地识别它
arr = _.without(arr, 5);
您将从arr
中删除5
的所有实例。
相关文章:
- Mongoose-在更新中删除数组元素
- 在特定索引处剥离/删除数组中的值
- Framework7:使用swipeout删除数组中的项
- Javascript删除数组中某个位置之后的项
- 通过选中和取消选中复选框来添加和删除数组中的值
- 编写删除数组并添加到列表的函数
- Javascript - 删除数组中的重复值
- 在 Kineticjs 中删除数组中的组
- 如何根据数组内容添加/删除数组中的元素
- 用于删除数组中的零的Javascript函数代码
- Javascript-仅使用pop()方法删除数组中的负值
- 删除数组元素并将它们添加回原来的位置
- 如果一个键匹配,如何删除数组元素
- 无法使用拼接删除数组中的元素
- 如何从ko.computed中删除数组项
- 删除数组中的重复项,为什么此代码不起作用
- 使用另一个数组按索引删除数组中的对象
- 在 jquery 中,如何通过索引[“键”] 或值删除数组元素
- 使用 Lodash 删除数组中的元素
- 按索引删除数组元素