'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;
|
|
};
|