没有脚的大鹏 2022-10-09 14:08 采纳率: 33.3%
浏览 31
已结题

如何实现以下转换,合并连续的数字?(语言-javascript)

实现以下转换,合并连续的数字

[1,2,3,4,6,7,9,13,15] 转换成 [1->4,6->7,9,13,15]

  1. 将超过一个的连续数字元素,合并成 x->y,比如 [1,2,3,4] 转成 ['1->4']
  2. 将非连续的数字元素,转成字符串
用代码块功能插入代码,请勿粘贴截图
  • 写回答

1条回答 默认 最新

  • 飞鱼爱吃米 2022-10-09 15:46
    关注

    img

          //数组处理函数
          function dealArray(array) {
            var t;
            var temp;
            var r = [];
            for (var j = 0; j < array.length; j++) {
              var v = array[j];
              if (v != null) {
                if (t === v) {
                  temp.push(t);
                  t++;
                  continue;
                }
                temp = [v];
                t = v + 1;
                r.push(temp);
              }
            }
            return (arr = r.map((item) => {
              if (item.length > 1) {
                return (item = item[0] + '->' + item[item.length - 1]);
              } else {
                return (item = item[0].toString());
              }
            }));
          }
          let arr = [1, 2, 3, 4, 6, 7, 9, 13, 15];
          dealArray(arr);
          console.log(arr);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月17日
  • 已采纳回答 10月9日
  • 创建了问题 10月9日