50 lines
851 B
JavaScript
50 lines
851 B
JavaScript
/**
|
||
* @author 谦彧 <zhangmian.zm@alipay.com>
|
||
* @date 2023/11/1
|
||
*/
|
||
|
||
/**
|
||
* 返回值0标识一样大,1表示v1大,-1表示v2大
|
||
* @param v1
|
||
* @param v2
|
||
*/
|
||
export function compareVersion(v1, v2) {
|
||
if (!v1 && !v2) {
|
||
return 0;
|
||
} else if (!v1) {
|
||
return -1;
|
||
} else if (!v2) {
|
||
return 1;
|
||
}
|
||
if (v1 === v2) {
|
||
return 0;
|
||
}
|
||
if (!v1) {
|
||
return -1;
|
||
}
|
||
if (!v2) {
|
||
return 1;
|
||
}
|
||
|
||
// 1.6
|
||
var vs1 = v1.split('.').map(function (a) {
|
||
return parseInt(a);
|
||
});
|
||
// 1.6.1
|
||
var vs2 = v2.split('.').map(function (a) {
|
||
return parseInt(a);
|
||
});
|
||
var length = Math.min(vs1.length, vs2.length);
|
||
for (var i = 0; i < length; i++) {
|
||
if (vs1[i] > vs2[i]) {
|
||
return 1;
|
||
} else if (vs1[i] < vs2[i]) {
|
||
return -1;
|
||
}
|
||
}
|
||
if (length === vs1.length) {
|
||
return -1;
|
||
} else {
|
||
return 1;
|
||
}
|
||
} |