You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
713 B
28 lines
713 B
import isArrayLike from './is-array-like';
|
|
import pullAt from './pull-at';
|
|
var remove = function (arr, predicate) {
|
|
/**
|
|
* const arr = [1, 2, 3, 4]
|
|
* const evens = remove(arr, n => n % 2 == 0)
|
|
* console.log(arr) // => [1, 3]
|
|
* console.log(evens) // => [2, 4]
|
|
*/
|
|
var result = [];
|
|
if (!isArrayLike(arr)) {
|
|
return result;
|
|
}
|
|
var i = -1;
|
|
var indexes = [];
|
|
var length = arr.length;
|
|
while (++i < length) {
|
|
var value = arr[i];
|
|
if (predicate(value, i, arr)) {
|
|
result.push(value);
|
|
indexes.push(i);
|
|
}
|
|
}
|
|
pullAt(arr, indexes);
|
|
return result;
|
|
};
|
|
export default remove;
|
|
//# sourceMappingURL=remove.js.map
|