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

]

以上是 JavaScript中连续数字的总和 的全部内容, 来源链接: utcz.com/z/361061.html

回到顶部