function compare(a,b) {
var as = a.split('.')
var bs = b.split('.')
return new Date(as[0],as[1],as[2]) > new Date(bs[0],bs[1],bs[2])
}
compare('3.0.11','3.0.9')//true
compare('3.0.11','3.0.20')//false
compare('4.0.11','3.0.20')//true
function parseVersion(str){
var arr = str.split('.'),
num = 0,
base = 1000;
for(var i = 0; i < arr.length; i++){
num *= base;
num += +arr[i];
}
return num;
}
parseVersion('1.0.0') //1000000
parseVersion('3.0.10') //3000010
提供一个新思路
先转换成数字,然后就可以直接用数字比较了
转换成'xx.xx.xx',用字符串比较大小,对版本号层级无要求:
a1 = parseInt(a1.split('.').reduce((i,j)=>i+j));
a2 = parseInt(a2.split('.').reduce((i,j)=>i+j));
console.log((a1-a2)>0?'>':'<');