You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
456 B

'use strict';
module.exports = function reduce(fn, carry) {
var _this = this;
var reduceCarry = null;
if (carry !== undefined) {
reduceCarry = carry;
}
if (Array.isArray(this.items)) {
this.items.forEach(function (item) {
reduceCarry = fn(reduceCarry, item);
});
} else {
Object.keys(this.items).forEach(function (key) {
reduceCarry = fn(reduceCarry, _this.items[key], key);
});
}
return reduceCarry;
};