Return 匹配数组项并将其从原始数组中删除
Return matched array items and remove them from original array
我正在尝试查找 lodash
是否具有可以根据某些查询进行过滤的功能,return 匹配对象的数组,但从原始数组中删除匹配的对象.
与 _.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
您可以使用原生 JavaScript Array#filter
and 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);
我正在尝试查找 lodash
是否具有可以根据某些查询进行过滤的功能,return 匹配对象的数组,但从原始数组中删除匹配的对象.
与 _.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
您可以使用原生 JavaScript Array#filter
and 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);