取连续数字

需求是取输入数据中的连续数字,将连续数字使用连接符~连接首尾数字

输入:1,2,3, 5, 6, 9, 12, 13, 14
输出: 1 ~ 3, 5 ~ 6, 9, 12 ~ 14

window.onload = function () {
    let input = [1,2,3, 5, 6, 9, 12, 13, 14]
    let output = continuousNum(input);
    console.log('output', output);
  }

  const continuousNum = (arr) => {
    let res = [];
    let str ='';
    let i = 0;
    res[i] = [arr[i]];
    arr.reduce((pre, cur) => {
      if (cur - pre === 1) {
        res[i].push(cur);
      } else {
        i++;
        res[i] = [cur];
      }
      return cur;
    })
    res.forEach(itm => {
      let len = itm.length;
      if ( len > 1) {
        str +=`${itm[0]}~${itm[len-1]},`;
      } else {
        str += `${itm[0]},`;
      }
    })
    return str.substring(0, str.length-1);
  }
  


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容