!! 说在前面的:本题目来源于京城一灯,已经过对方同意方分享记录
那么来看看今天的题目吧:
分析
这个问题的核心其实显而易见:将字符串分割,依次比较每一位的大小,其中排在前面的权重更高。
那么思路就很清晰了:
- 通过
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:按要求实现版本号列表处理函数