在JavaScript数组中将连续数字分组为"from~to"字符串的方法是:
以下是一个示例代码:
function groupNumbersToRange(array) {
let result = [];
let start = array[0];
let end = array[0];
for (let i = 1; i < array.length; i++) {
if (array[i] - array[i-1] !== 1) {
let range = start === end ? start.toString() : start.toString() + '~' + end.toString();
result.push(range);
start = array[i];
}
end = array[i];
}
let range = start === end ? start.toString() : start.toString() + '~' + end.toString();
result.push(range);
return result;
}
// 示例用法
let array = [1, 2, 3, 5, 6, 8, 9, 10, 12];
let result = groupNumbersToRange(array);
console.log(result); // 输出: ['1~3', '5~6', '8~10', '12']
这段代码的思路是先将起始位置和结束位置都初始化为数组的第一个元素,然后遍历数组,判断当前数字和下一个数字是否连续,如果是连续则更新结束位置,如果不连续则将起始位置和结束位置转换为字符串并添加到结果数组中,并更新起始位置为下一个数字。最后,处理完整个数组后,将最后一个起始位置和结束位置转换为字符串并添加到结果数组中。最后返回结果数组作为答案。
此方法适用于将连续的数字分组为"from~to"字符串,适用场景包括统计连续日期、连续的ID等情况。在腾讯云产品中,推荐使用腾讯云数据库 TencentDB 来存储和查询数据,具体介绍可参考腾讯云官网的 TencentDB 页面。
领取专属 10元无门槛券
手把手带您无忧上云