将数组划分为多个数组

Kon*_*iev 1 javascript arrays

我有以下两个数组:

var arr1 = [1,2,4,5];
var arr2 = [];
Run Code Online (Sandbox Code Playgroud)

当没有连续值时,我将如何分割它?

在这个例子中,它应该分为:[ [1,2][4,5].

这两个数组应该存储在arr2中.

例2:

var arr3 = [1,2,3,5,6,7,8,9,10,11,13]

结果: [[1,2,3], [5,6,7,8,9,10], [11], [13]]

Nin*_*olz 7

您可以使用Array#reduce并检查元素是否连续.然后追加到最后一个数组,否则将新数组推送到结果集.

var array = [1, 2, 4, 5],
    result = array.reduce(function (r, a, i, aa) {
        if (!i || aa[i - 1] + 1 !== a) {
            r.push([a]);
        } else {
            r[r.length - 1].push(a);
        }
        return r;
    }, []);

console.log(result);
Run Code Online (Sandbox Code Playgroud)