diff --git a/snippets/accumulate.md b/snippets/accumulate.md new file mode 100644 index 000000000..08f061829 --- /dev/null +++ b/snippets/accumulate.md @@ -0,0 +1,17 @@ +--- +title: accumulate +tags: math,array,beginner +--- + +Returns an array of partial sums. + +Use `Array.prototype.reduce()`, `Array.prototype.slice(-1)` and the unary `+` operator to add each value to the unary array containing the previous sum. + +```js +const accumulate = (...nums) => nums.reduce((acc, n) => [...acc, n + +acc.slice(-1)],[]); +``` + +```js +accumulate(1, 2, 3, 4); // [1, 3, 6, 10] +accumulate(...[1, 2, 3, 4]); // [1, 3, 6, 10] +```