版本比较函数
// versionCompare函数
// 输入:preVersion(前一个版本),lastVersion(后一个版本)
// 输出:-1(如果preVersion小于lastVersion)
// 0(如果两个版本相等)
// 1(如果preVersion大于lastVersion)
function versionCompare(preVersion = '', lastVersion = '') {
// 使用'.'切割版本号字符串,得到版本数组
let sources = preVersion.split('.');
let dests = lastVersion.split('.');
// 获取两个版本号中较长的一个
let maxL = Math.max(sources.length, dests.length);
let result = 0;
// 遍历每一位版本号进行比较
for (let i = 0; i < maxL; i++) {
// 如果某一版本长度短,那么缺失的部分默认为0
let preValue = sources.length > i ? sources[i]:0;
let lastValue = dests.length > i ? dests[i]:0;
// 如果版本号包含非数字字符,则转为字符编码
let preNum = isNaN(Number(preValue)) ? preValue.charCodeAt() : Number(preValue);
let lastNum = isNaN(Number(lastValue)) ? lastValue.charCodeAt() : Number(lastValue);
// 进行实际的版本号比较
if (preNum < lastNum) {
result = -1;
break;
} else if (preNum > lastNum) {
result = 1;
break;
}
}
// 返回结果
return result;
}
测试versionCompare函数
// 使用示例版本号 '1.0.2' 和 '1.0.3' 测试函数
console.log((versionCompare('1.0.2', '1.0.3')))