例:
oldArr = [1,2,3,7,8,9,15,17,18,19]
根据这个数组可以得到以下一个二维数组
newArr = [[1,2,3],[7,8,9],[15],[17,18,19]]
求大神赐我方法!
例:
oldArr = [1,2,3,7,8,9,15,17,18,19]
根据这个数组可以得到以下一个二维数组
newArr = [[1,2,3],[7,8,9],[15],[17,18,19]]
求大神赐我方法!
这是一个很难的问题么?
var oldArr = [1,2,3,7,8,9,15,17,18,19];
var pre=undefined,arr=[],newArr=[];
for(var i=0;i<oldArr.length;i++){
if(typeof pre == "undefined") {
arr.push(oldArr[i]);
pre = oldArr[i];
continue;
}
if(oldArr[i] === pre+1){
pre++;
arr.push(pre);
}else{
newArr.push(arr);
arr = [oldArr[i]];
pre = oldArr[i];
}
}
newArr.push(arr);
var newArr = oldArr.reduce((newArr, value, index) => {
if (newArr.length && (value - newArr[0][0]) === 1) {
newArr[0].unshift(value);
} else {
newArr.unshift([value]);
}
return newArr;
}, []).reverse().map(a => a.reverse());
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决