用js判断版本号时,先将版本号拆分成数组,一一进行比较。
为了以防万一(例:1.1 和1.1.1),新版本号和旧版本号的数组的数组长度不一致,给旧版本号数组后加上一个指为0的字符串。
renewalFn(){
this.banbenid = '1.1.1' // 旧版本号
this.versionNumber = '1.1.5'// 新版本号
// 将版本号拆分成数组,进行比较
let oldArr = this.banbenid.split('.') // 旧版本号数组
let newArr = this.versionNumber.split('.') // 新版本号数组
// let maxL= Math.max(oldArr.length,newArr.length)
let maxL = newArr.length //新版本号数组长度
if(oldArr.length < maxL){ // 为了能正常的进行比较 如果上一个版本长度小于当前版本设置的长度,则给上一个版本的数组追加一个值为0的字符串
oldArr.push("0");
}
// 将数组一一进行比较
let index=0,diff=0;
while(index<maxL){
diff = parseInt(newArr[index])>parseInt(oldArr[index])?1:(parseInt(newArr[index])==parseInt(oldArr[index])?0:-1);
if(diff!=0){ break; }
index++;
}
if (diff>0) { // 旧 < 新
Toast('有新版本');
}else if (diff==0) { // 旧 = 新
Toast('已经是最新版本');
}else{ // 旧 > 新
Toast('没有新版本')
}
}