JavaScript 中連續數字的和


假設我們必須編寫一個函式,該函式接受一個數組,並返回另一個數組,其中連續的相似數字相加。

例如 −

const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];

輸出應為 −

[1, 15, 16, 9, 1, 8, 2]

所有連續的 5 相加為 15,然後 2 個連續的 8 相加為 16,以此類推 4 相加為 8。

因此,讓我們編寫此函式的程式碼。我們將在此處使用 Array.prototype.reduce() 方法來縮減原始陣列並同時構造一個新陣列。

例項

const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];
const sumConsecutive = (array) => {
   return array.reduce((acc, val) => {
      if (acc.last === val) {
         acc.arr[acc.arr.length - 1] += val;
      } else {
         acc.arr.push(val);
         acc.last = val;
      }
      return acc;
   }, { arr: [], last: undefined }).arr;
};
console.log(sumConsecutive(array));

輸出

控制檯中的輸出將為 −

[
   1, 15, 16, 9,
   1, 8, 2
]

更新於: 2020 年 8 月 24 日

415 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

立即開始
廣告
© . All rights reserved.