我有以下两个数组:
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]]
您可以使用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)
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |