实现
const compareVersion = (loaclVersion, serviceVersion, key = '.') => {
const lvArr = loaclVersion.split(key);
const svArr = serviceVersion.split(key);
const arrLen = lvArr.length;
let needUpdateLevel = 0;
for (let i = 0; i < arrLen; i++) {
if (Number(lvArr[i]) < Number(svArr[i])) {
needUpdateLevel = arrLen - i;
break;
} else if (Number(lvArr[i]) > Number(svArr[i])) {
console.log(needUpdateLevel);
break;
}
}
return needUpdateLevel;
};
使用
compareVersion(a, b, key = '.');
- a:本地版本
- b:服务端版本
- key:版本分隔符,默认 `.`
返回值:
- 0:a >= b,无需更新
- 1:a < b,阶段版本号需更新
- 2:a < b,子版本号需更新
- 3:a < b,主版本号需更新
示例
compareVersion('1.5.111', '1.7.0');
compareVersion('1.105.1', '2.0.0');
compareVersion('10.0.1', '10.0.22');
compareVersion('3.2.1', '3.2.1');
compareVersion('2_22_1', '2_9_11', '_');

演示地址:ihuxy.com/play?utils=…