@extra-array/accumulate-update
Version:
Produces accumulating values.
25 lines (22 loc) • 499 B
JavaScript
;
/**
* Produces accumulating values.
* @param x an array (updated)
* @param fr reduce function (acc, v, i, x)
* @param acc initial value
* @returns x
*/
function accumulate$(x, fr, acc) {
var init = arguments.length <= 2;
for (var i = 0, I = x.length; i < I; i++) {
if (init) {
acc = x[i];
init = false;
}
else
acc = fr(acc, x[i], i, x);
x[i] = acc;
}
return x;
}
module.exports = accumulate$;