index.js 384 B

12345678910111213141516171819
  1. /**
  2. * Array#filter.
  3. *
  4. * @param {Array} arr
  5. * @param {Function} fn
  6. * @return {Array}
  7. */
  8. module.exports = function (arr, fn) {
  9. if (arr.filter) return arr.filter(fn);
  10. var ret = [];
  11. for (var i = 0; i < arr.length; i++) {
  12. if (!hasOwn.call(arr, i)) continue;
  13. if (fn(arr[i], i, arr)) ret.push(arr[i]);
  14. }
  15. return ret;
  16. };
  17. var hasOwn = Object.prototype.hasOwnProperty;