连续数字的总和

Arn*_*ldB 6 javascript logic

给定一个整数数组。例如[1,2,2,2,5,7]。我想输出任意组连续的相同数字及其和。输出应为[1,6,5,7]。关于如何执行此操作的任何想法?

Nin*_*olz 3

您可以Array.prototype.reduce()与临时对象一起使用。

var array = [1, 2, 2, 2, 5, 7],
    result = array.reduce(function (r, a) {
        if (r.last === a) {
            r.array[r.array.length - 1] += a;
        } else {
            r.array.push(a);
            r.last = a;
        }
        return r;
    }, { array: [], last: null }).array;

document.write('<pre>' + JSON.stringify(result,0,4) + '</pre>');
Run Code Online (Sandbox Code Playgroud)