版本號比較大小
思路
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
查詢非數字字元。