JavaScript 将['1','8','2','3','10','5','9','10','12']处理成['1-3','5','8-10','12']
时间: 2023-10-23 13:12:21 浏览: 60
以下是将['1','8','2','3','10','5','9','10','12']处理成['1-3','5','8-10','12']的JavaScript代码:
```javascript
function groupNumbers(arr) {
let sortedArr = arr.sort((a, b) => a - b); // 将数组排序
let tempArr = [sortedArr[0]]; // 存储当前处理的数字序列
let resultArr = []; // 存储最终的结果序列
for (let i = 1; i < sortedArr.length; i++) {
if (sortedArr[i] - sortedArr[i-1] === 1) {
// 如果当前数字与前一个数字差为1,说明是连续的数字
tempArr.push(sortedArr[i]);
} else {
// 如果当前数字与前一个数字差不为1,说明数字序列结束
if (tempArr.length === 1) {
// 如果数字序列只有一个数字,直接添加到结果序列中
resultArr.push(tempArr[0]);
} else {
// 如果数字序列有多个数字,将数字序列转化为'x-y'的形式添加到结果序列中
resultArr.push(`${tempArr[0]}-${tempArr[tempArr.length-1]}`);
}
// 重置数字序列
tempArr = [sortedArr[i]];
}
}
// 处理最后一个数字序列
if (tempArr.length === 1) {
resultArr.push(tempArr[0]);
} else {
resultArr.push(`${tempArr[0]}-${tempArr[tempArr.length-1]}`);
}
return resultArr;
}
let arr = ['1','8','2','3','10','5','9','10','12'];
let result = groupNumbers(arr);
console.log(result); // 输出['1-3','5','8-10','12']
```
阅读全文