求各位看下这种混合怎么排序

['1','15','15','13(文字描述)','+12(文字描述)','08','09(文字描述)']

这种数组怎么排序。。有括号的按照(前面的字符来算,,从小到大依次排列

阅读 1k
1 个回答

这个意思吧

function demo (arr) {
  function getNum (str) {
    let mt = str.match(/^\+?\d+\b/)
    return mt ? Number(mt[0]) : 0
  }
  arr.sort((a, b) => getNum(a) < getNum(b) ? -1 : 1)
  return arr
}

var arr = ['1','15','15','13(文字描述)','+12(文字描述)', '08','09(文字描述)']
console.log(demo(arr)) // => ["1", "08", "09(文字描述)", "+12(文字描述)", "13(文字描述)", "15", "15"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题