版本号比较大小
思路
eg: 版本号: 1.3.9.1
- 将版本号以
.
分割成一个数组A(每一项都是字符串格式)。 - 自定义一个数组 B
['0000', '000', '00', '0', '']
(默认字符串的每节数都在 5 位以下) - 遍历 A, 让 B 的每一项与 A 的每一项字符串相加(通过 A 的没一项的个数来判断一下)
具体实现
function toNum(val) {
let a = val.toString().split('.')
let num = ['0000', '000', '00', '0', '']
a.forEach((item, index) => {
let len = item.length
// 字符串相加
a[index] = num[len] + a[index]
})
let res = a.join('')
return res
}
function compare(a, b) {
let _a = toNum(a)
let _b = toNum(b)
if (_a === _b) console.log('版本号相同');
if (_a > _b) console.log(`版本号:${a} 是新版本`);
if (_a < _b) console.log(`版本号:${b} 是新版本`);
}
let a = 'V2.4.6.9'
let b = 'V2.4.6.5'
compare(a, b) // 版本号:V2.4.6.9 是新版本
注意
如果版本号是这样包括 v 字母的 v1.2.3.4
将 toNum
方法中的 let a = val.toString().split('.')
=> let a = val.toString().split(/\D/)
/D
查找非数字字符。