// 输入
[1,1,1,2,3,4,5,8,10,22,24,25,26,66]
// 输出
[1,1,[1,2,3,4,5],8,10,22,[24,25,26],66]
代码:
sortArr(arr){
let result = [],
i = 0;
const list = arr.sort((a, b) => a-b);
list.forEach((item, index) => {
if (index === 0) {
result[0] = [item];
} else if (item - list[index-1] === 1 ) { // 判断当前值 和 前一个值是否相差1
result[i].push(item);
} else {
result[++i] = [item]; // 开辟新空间。
}
})
return result;
},
使用:
this.formData.section = ['1','4','5','6','11'] // 输入
let arr = this.sortArr(this.formData.section)
console.log('arr:', arr) // [['1'],['4','5','6'],['11']]
let str = ''
arr.forEach(item=>{
if(item.length>1){
str+=item[0]+'-'+item[item.length-1] +','
}else {
str+=item+','
}
})
console.log('----:', str.substr(0,str.length-1)) // 1,4-6,11