有没有获取数字数组和返回范围的函数?

时间:2019-10-23 11:59:42

标签: javascript arrays

我希望我能向自己解释正确。 我需要编写一个获取数字数组并返回范围数组的函数(如果有)。

例如:

[1,2,3,5,6,8,9,10] -----> [[1,2,3],[5,6],[8,9,10]]

1 个答案:

答案 0 :(得分:1)

如果增量不是一个,则可以检查先前的值并插入一个新数组。

var array = [1, 2, 3, 5, 6, 8, 9, 10],
    result = array.reduce((r, v, i, { [i - 1]: p }) => {
        if (p === v - 1) r[r.length - 1].push(v);
        else r.push([v]);
        return r;
    }, []);

console.log(result);