我正在尝试查找lodash
是否具有可以根据某些查询进行过滤的函数,返回匹配对象的数组,但是从原始数组中删除匹配的对象。
与_.filter
非常相似,但修改了原始数组并删除了匹配的元素。
示例
var originalArray = [1, 2, 3, 4, 5];
console.log(originalArray);
----> 1, 2, 3, 4, 5
var evenNumbers = _.somethingSimilarToFilter(originalArray, function(n) {
return n % 2 === 0
});
console.log(evenNumbers);
----> 2, 4
console.log(originalArray);
----> 1, 3, 5
答案 0 :(得分:1)
您可以使用原生JavaScript Array#filter
和 Array#splice
方法完成此操作
var originalArray = [1, 2, 3, 4, 5];
var evenNumbers = originalArray.filter(function(n, i, arr) {
// just remove the element from array if even number
return n % 2 === 0 && arr.splice(i, 1)
});
console.log(originalArray, evenNumbers);