【Daily Interview】- 04 按要求实现版本号列表处理函数

72 阅读1分钟

!! 说在前面的:本题目来源于京城一灯,已经过对方同意方分享记录

那么来看看今天的题目吧:

分析

这个问题的核心其实显而易见:将字符串分割,依次比较每一位的大小,其中排在前面的权重更高

那么思路就很清晰了:

  • 通过 split 分割字符串
  • 通过 sort 对数组进行排序
  • 如果分割后的两数不相等则进行排序

然后是按部就班的实现代码:

const sortVersion = vlist => {
  return vlist.sort((a, b) => {
    let _a = a.split(".")
    let _b = b.split(".")
    let len = _a.length > _b.length ? _a.length : _b.length
    for (let i = 0; i < len; i++) {
      let x = _a[i] || 0
      let y = _b[i] || 0
      if (x - y !== 0) return x - y
    }
  })
}

感兴趣的读者可以看看在线 demo:按要求实现版本号列表处理函数