美文网首页
取连续数字

取连续数字

作者: 奋斗的小小小兔子 | 来源:发表于2019-07-23 10:46 被阅读0次

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

    输入: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);
      }
      
    
    
    

    相关文章

      网友评论

          本文标题:取连续数字

          本文链接:https://www.haomeiwen.com/subject/knxolctx.html