js处理数字字符串是连续或单独显示函数

一, 传入字符串,处理完 返回字符串

  function handlerAttendClassWeekStr (str) {
                let arr = str.split(",").map(val=>Number(val)).sort((val1,val2)=>val1-val2);
                let last = arr[0];
                let n = 1;
                let res = arr.reduce((prev,val,index)=>{
                    let _last = last;
                    last = val;
                    if(index===arr.length-1){
                        if(val===(_last+1)) return prev+"-"+val;
                        return prev+","+val;
                    }
                    else if(val===(_last+1)){
                        n++;
                        return prev;
                    }
                    else if(n===1){
                        n=1;
                        return prev+","+val;
                    }else{
                        n=1;
                        return prev+"-"+_last+","+val;
                    }
                })
                return res
            }

二 ,处理的是数字的数组

var arr = [174, 176, 177, 178, 179, 180, 183, 189, 190]
function group(list) {
  list = list.sort()
  var tmp = []
  list.forEach((item, index) => {
    var prev = list[index - 1] //前一项
    if (prev && item === prev + 1) {//有相邻前一项
      if (typeof tmp[tmp.length - 1] === 'number') {//输出数组最后一项是数字
        tmp[tmp.length - 1] = prev + '~' + item //拼接成字符串
      } else {//输出数组最后一项是字符串
        tmp[tmp.length - 1] = tmp[tmp.length - 1].split('~')[0] + '~' + item // 替换字符串最后的数字
      }
    } else {//没有前一相邻项或者没有前一项
      tmp.push(item)
    }
  })
  return tmp
}

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

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,691评论 0 4
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,227评论 0 1
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,880评论 0 3
  • 5、Math中的常用方法(10个)6、Date日期操作基础详解以及常用方法(12个) 5、Math中的常用方法(1...
    萌妹撒阅读 399评论 0 1
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,737评论 0 5

友情链接更多精彩内容