JavaScript实现有序数组连续数字序列压缩问题求助
有序数组连续序列格式化问题
我需要编写一个程序,接收有序数字数组并实现以下功能:
- 数组中存在连续数字序列时,将序列首尾数字用连字符连接后加入输出数组
- 不存在连续序列的单个数字,直接加入输出数组
示例有序数组:
[1,2,3, 5,6,7,8, 10,11, 34, 56,57]
其中(1,2,3)、(5,6,7,8)、(10,11)、(56,57)是连续序列,34不属于连续序列。
预期输出:["1-3", "5-8", "10-11", 34, "56-57"]
我的代码输出不符合预期,错误输出为:["1-1","1-2","1-3","5-6","5-7","5-8","10-11",34,"56-57","56-58"]
我的代码如下:
let array = [1,2,3,5,6,7,8,10,11,34,56,57]; let x = []; for(let i = 0; i < array.length; i++){ for(let j = 0; j < array.length; j++){ if(array[i] + j == array[j]){ x.push(array[i] + "-" + array[j]); } if(array[j] > array[i] + j && array[j + 1]){ let y = array.slice(j, array.length) array = y; i, j = 0; } if(array[i] - array[i + 1] != -1 && array[i + 1] - array[i] != 1 && array[i + 1] != undefined){ x.push(array[i]); } } } console.log(x);
内容的提问来源于stack exchange,提问作者Mojahid
相关产品推荐
相关产品推荐

