remove.js 429 B

123456789101112131415161718
  1. var safeCb = require('./safeCb');
  2. exports = function(arr, iterator, ctx) {
  3. var ret = [];
  4. iterator = safeCb(iterator, ctx);
  5. var i = -1;
  6. var len = arr.length;
  7. while (++i < len) {
  8. var realIdx = i - ret.length;
  9. var val = arr[realIdx];
  10. if (iterator(val, i, arr)) {
  11. ret.push(val);
  12. arr.splice(realIdx, 1);
  13. }
  14. }
  15. return ret;
  16. };
  17. module.exports = exports;