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 ]
广告