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