亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js如何處理數字字符串是連續或單獨顯示

js如何處理數字字符串是連續或單獨顯示

嗶嗶one 2019-02-20 17:16:48
有如下數字字符串:174,176,177,178,179,180,183,189,190,期待結果:174,176~180,183,189~190想不出怎么處理,有什么思路或者代碼示例,謝謝??!
查看完整描述

1 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

昨天有童鞋指出輸出結果不對,一看邏輯確實是有點問題

原答案已修改,代碼更簡潔,邏輯更清晰,并已注釋:


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))


查看完整回答
反對 回復 2019-02-22
  • 1 回答
  • 0 關注
  • 418 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號