在 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]

以上是 在 JavaScript 中累积数组元素以形成新数组 的全部内容, 来源链接: utcz.com/z/357798.html

回到顶部