remove.js 713 B

12345678910111213141516171819202122232425262728
  1. import isArrayLike from './is-array-like';
  2. import pullAt from './pull-at';
  3. var remove = function (arr, predicate) {
  4. /**
  5. * const arr = [1, 2, 3, 4]
  6. * const evens = remove(arr, n => n % 2 == 0)
  7. * console.log(arr) // => [1, 3]
  8. * console.log(evens) // => [2, 4]
  9. */
  10. var result = [];
  11. if (!isArrayLike(arr)) {
  12. return result;
  13. }
  14. var i = -1;
  15. var indexes = [];
  16. var length = arr.length;
  17. while (++i < length) {
  18. var value = arr[i];
  19. if (predicate(value, i, arr)) {
  20. result.push(value);
  21. indexes.push(i);
  22. }
  23. }
  24. pullAt(arr, indexes);
  25. return result;
  26. };
  27. export default remove;
  28. //# sourceMappingURL=remove.js.map