在 JavaScript 中累积数组元素以形成新数组
问题
我们需要编写一个JavaScript函数,它接受一个数字数组arr作为第一个参数,一个数字num(num<=数组长度)作为第二个参数
我们的函数应该将数组arr的每个长度为num的连续子数组相加,形成新数组的对应元素,最后返回该新数组
例如,如果函数的输入是-
const arr = [1, 2, 3, 4, 5, 6]; const num = 2;
那么输出应该是-
const output = [3, 5, 7, 9, 11];
输出说明
因为1+2=3、2+3=5,依此类推...
示例
以下是代码-
const arr = [1, 2, 3, 4, 5, 6]; const num = 2; const accumulateArray = (arr = [], num = 1) => { const res = []; let sum = 0, right = 0, left = 0; for(; right < num; right++){ sum += arr[right]; }; res.push(sum); while(right < arr.length){ sum -= arr[left]; sum += arr[right]; right++; left++; res.push(sum); }; return res; }; console.log(accumulateArray(arr, num));输出结果
以下是控制台输出-
[3, 5, 7, 9, 11]