1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 1× 1× 2× 2× 2× 2× 1× 1× 3× 1× 1× 3× 2× | const forEach = require('./each') module.exports = function filter (each, fn, _isArray) { var isArray = typeof _isArray !== 'undefined' ? _isArray : Array.isArray(each) var result Eif (typeof each !== 'function') each = forEach.bind(this, each) if (isArray) { result = [] each(function (val, key) { if (fn.apply(this, arguments)) result.push(val) }) } else { result = {} each(function (val, key) { if (fn.apply(this, arguments)) result[key] = val }) } return result } |