在实际的开发工作中我们会对项目前后的版本号进行对比,从而进行缓存的更新。下面我们就使用js对标准的版本号进行比较大小。
实现一个方法,用于比较两个版本号(version1、version2)
如果version1 > version2,返回1;
如果version1 < version2,返回-1,
其他情况返回0
版本号规则x.y.z
,xyz均为大于等于0的整数,至少有x位
示例:
compareVersion(‘0.1’, ‘1.1.1’); // 返回-1
compareVersion(‘13.37’, '1.2 '); // 返回1
compareVersion(‘1.1’, ‘1.1.0’); // 返回0
function compareVersion(version1, version2) {
const newVersion1 = `${version1}`.split('.').length < 3 ? `${version1}`.concat('.0') : `${version1}`;
const newVersion2 = `${version2}`.split('.').length < 3 ? `${version2}`.concat('.0') : `${version2}`;
//计算版本号大小,转化大小
function toNum(a){
const c = a.toString().split('.');
const num_place = ["", "0", "00", "000", "0000"],
r = num_place.reverse();
for (let i = 0; i < c.length; i++){
const len=c[i].length;
c[i]=r[len]+c[i];
}
return c.join('');
}
//检测版本号是否需要更新
function checkPlugin(a, b) {
const numA = toNum(a);
const numB = toNum(b);
return numA > numB ? 1 : numA < numB ? -1 : 0;
}
return checkPlugin(newVersion1 ,newVersion2);
}
compareVersion('0.1', '1.1.1'); // -1
compareVersion('13.37', '1.2 '); // 1
compareVersion('1.1', '1.1.0'); // 0
接下来我们就可以根据这个结果来更新我们的缓存了~