remove.js 829 B

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var is_array_like_1 = require("./is-array-like");
  4. var pull_at_1 = require("./pull-at");
  5. var remove = function (arr, predicate) {
  6. /**
  7. * const arr = [1, 2, 3, 4]
  8. * const evens = remove(arr, n => n % 2 == 0)
  9. * console.log(arr) // => [1, 3]
  10. * console.log(evens) // => [2, 4]
  11. */
  12. var result = [];
  13. if (!is_array_like_1.default(arr)) {
  14. return result;
  15. }
  16. var i = -1;
  17. var indexes = [];
  18. var length = arr.length;
  19. while (++i < length) {
  20. var value = arr[i];
  21. if (predicate(value, i, arr)) {
  22. result.push(value);
  23. indexes.push(i);
  24. }
  25. }
  26. pull_at_1.default(arr, indexes);
  27. return result;
  28. };
  29. exports.default = remove;
  30. //# sourceMappingURL=remove.js.map