You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:15:39