我有一个类似的数组
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进行一些语句,但我有点困惑?感谢任何帮助
解决方法:
这是另一个更密集的方法,它使用下划线非常方便的groupBy和values方法:
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函数这样的东西?实现起来应该是微不足道的,但在这种情况下可能非常有用.