透過 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]

更新於: 21-4-2021

148 次瀏覽

開啟您的職業生涯

完成課程取得認證

開始使用
廣告
© . All rights reserved.