Running Sum of 1d Array

EasyArrayPrefix Sum

Solution

export function runningSum(nums: number[]): number[] {
  /* Iteration
  const ret: number[] = [];
  let previousValue = 0;
  nums.forEach((num) => {
    previousValue += num;
    ret.push(previousValue);
  });
  return ret;
  */
 
  /* Use reduce */
  function reduceFunc(
    [result, previousValue]: [number[], number],
    currentValue: number,
  ): [number[], number] {
    return [[...result, previousValue + currentValue], previousValue + currentValue];
  }
  return nums.reduce(reduceFunc, [[], 0])[0];
}