javascript - 根据序列javascript拆分数组

标签 javascript for-loop underscore.js lodash

我有一个类似的数组

var arr = [12, 13, 14, 17, 18, 19, 20]

我想知道如何遍历数组,以便根据序列将此数组拆分为 2 个数组?即基本上如果 i+1 != true 使它成为一个新数组

var arr = [12, 13, 14]
var arr2 = [17,18,19,20]

我正在使用 lodash 并尝试了一些使用 splicefor 语句,但我有点困惑?感谢任何帮助

最佳答案

Example on jsFiddle

var a = [1, 2, 3, 5, 6, 7];

var r = [];
var t = [];

for (var i = 0; i < a.length; ++i)
{
    if (i == 0)
    {
        t.push(a[i]); // add the first element and continue
        continue;
    }
    if (a[i - 1] != (a[i] - 1))
    {
        // if the current is not sequential
        // add the current temporary array to arrays result
        r.push(t);

        // clear the temporary array and start over
        t = [];
    }

    t.push(a[i]);
}
r.push(t);

r 将包含您所有的数组

Minified version

function seq(e,t,n,r){t=[];n=[];for(r=0;r<e.length;++r){if(!r){n.push(e[r]);continue}if(e[r-1]!=e[r]-1){t.push(n);n=[]}n.push(e[r])}t.push(n);return t}

var result = seq([1, 2, 3, 5, 6, 7]);

关于javascript - 根据序列javascript拆分数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16886176/

相关文章:

javascript - 在 React JS 中上传文件

javascript - 在 LyX 中语法突出显示 Javascript,插入子项 -> 程序列表

java - for 循环(i) 在循环外使用变量或可能的解决方案?

python - 优化列表范围内的数字总和

java - 如何创建循环

javascript - 如何将自定义排序应用于数组?

javascript - 尝试导航时模型方法错误

javascript - 渲染 <p :panel> content by click on expand

javascript - Backbone 初始化时不保留属性值

Javascript - 等待大量异步回调返回?