基于序列javascript拆分数组

我有一个类似的数组

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并尝试使用splice进行一些语句,但我有点困惑?感谢任何帮助

解决方法:

这是另一个更密集的方法,它使用下划线非常方便的groupByvalues方法:

var origin = [12,13,14,15,17,18,19,21,22,23];
var c = 0, result = _.values( _.groupBy(origin, function(el, i, arr) { 
  return i ? c+= (1 !== el - arr[i-1]) : 0; }) );

因此,结果存档将包含所有序列作为元素.这是JSFiddle.

说明:groupBy在回调的帮助下对源数组进行分组(每当当前处理的元素(el)和前一个元素(arr [i-1])之间的差值大于1时,它返回一个新的序列号.它返回但是,一个对象,所以我必须通过_.values;你可能会也可能不会这一步.

我想知道是否可以请求像groupByInArray函数这样的东西?实现起来应该是微不足道的,但在这种情况下可能非常有用.

上一篇:javascript – 使用模糊匹配查找集合中的对象


下一篇:javascript – 下划线或条件(下划线,lodash或任何其他解决方案)