var arr = [1,2,5,7,10,11,12,13,18,19,20,21,22,56,57,58];
var index = 0;
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] + 1 != arr[i+1]) {
var mini = arr.slice(index, i+1);
if (mini.length > 1) {
result.push(mini);
}
index = i+1;
}
}
console.log(result); // [1,2],[10,11,12,13],[18,19,20,21,22],[56,57,58]
//
var result = [[]];
arr.reduce(function(previousValue, currentValue, currentIndex, arr) {
var tempArray = result[result.length - 1];
if (previousValue + 1 == currentValue) {
if (tempArray.length == 0) {
tempArray.push(previousValue);
}
tempArray.push(currentValue);
} else {
if (tempArray.length > 0) {
result.push([]);
} else {
result[result.length - 1] = [];
};
}
return currentValue;
});
console.log(result); // [1,2],[10,11,12,13],[18,19,20,21,22],[56,57,58]