| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 1 11 11 11 11 11 11 24 24 24 11 | import identity from './identity';
function reduce(xs, iteratee=identity, init=undefined, thisArg=undefined) {
let iter = xs[Symbol.iterator]();
let fn = thisArg ? iteratee.bind(thisArg) : iteratee;
let y = init !== undefined ? init : iter.next().value;
let x = iter.next();
let i = 0;
while (!x.done) {
y = fn(y, x.value, i, xs);
x = iter.next();
i += 1;
}
return y;
}
export default reduce;
|