JavaScript 中连续数字的总和
javascriptweb developmentobject oriented programming更新于 2025/10/2 17:48:17
假设,我们必须编写一个函数,该函数接受一个数组并返回另一个数组,其中连续的相似数字相加在一起。
例如 −
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 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

