sugar
Version:
A Javascript utility library for working with native objects.
21 lines (17 loc) • 479 B
JavaScript
;
var isDefined = require('../../common/internal/isDefined'),
coreUtilityAliases = require('../../common/var/coreUtilityAliases');
var forEachProperty = coreUtilityAliases.forEachProperty;
function objectReduce(obj, fn, acc) {
var init = isDefined(acc);
forEachProperty(obj, function(val, key) {
if (!init) {
acc = val;
init = true;
return;
}
acc = fn(acc, val, key, obj);
});
return acc;
}
module.exports = objectReduce;