50 lines
851 B
JavaScript
Raw Normal View History

2025-04-09 18:55:14 +08:00
/**
* @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;
}
}