reduce.js 382 B

12345678910111213141516
  1. var isArray = require('../type/is-array');
  2. var isPlainObject = require('../type/is-plain-object');
  3. var each = require('../each');
  4. var reduce = function reduce(arr, fn, init) {
  5. if (!isArray(arr) && !isPlainObject(arr)) {
  6. return arr;
  7. }
  8. var result = init;
  9. each(arr, function (data, i) {
  10. result = fn(result, data, i);
  11. });
  12. return result;
  13. };
  14. module.exports = reduce;