js如何把[1,2,4,6,7,8,9,10,11,12,17,18,19]转换成1-2,4,6-12,17-19
时间: 2024-09-13 14:09:23 浏览: 34
在JavaScript中,你可以通过遍历数组并使用逻辑判断将数字范围组合起来,然后创建一个新的数组来达到这个效果。这里是一个示例函数,它会实现你所描述的功能:
```javascript
function groupNumbers(arr) {
let result = [];
let start = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] - arr[i - 1] === 1) { // 如果连续,继续添加到结果
if (i === arr.length - 1 || arr[i + 1] - arr[i] !== 1) { // 到达数组末尾或者不连续时,结束当前区间
result.push(`${start}-${arr[i]}`); // 将区间转换为字符串形式
start = arr[i + 1]; // 更新开始值
}
} else { // 非连续,添加当前区间到结果并开始新的区间
if (start !== undefined) {
result.push(`${start}-${arr[i - 1]}`);
}
start = arr[i];
}
}
return result;
}
const numbers = [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 17, 18, 19];
console.log(groupNumbers(numbers));
```
当你运行这个函数时,它会返回 `['1-2', '4', '6-12', '17-19']`。
阅读全文