用于客户端和服务端进行版本更新判断使用,如有BUG,还望指出
效果
javascript
console.log(
isAllowUpdate('1','2.0.0'), // true
isAllowUpdate('2.0','2.0.0'), // false
isAllowUpdate('2.0','2.0.1'), // true
isAllowUpdate('2.1.1','2.1.2'), // true
isAllowUpdate('2.1.3','2.1.2'), // false
isAllowUpdate('2.2.3','2.1.2'), // false
isAllowUpdate('3.1.2','2.1.2'), // false
isAllowUpdate('3.0.0','2.1.2'), // false
)
实现
javascript
// ts
function isAllowUpdate(oldVersion:string, newVersion:string)
{
let _oldVersion = oldVersion.indexOf('.')>0?oldVersion.split('.'):[oldVersion];
let _newVersion = newVersion.indexOf('.')>0?newVersion.split('.'):[newVersion];
let _vMap:number[] = [];
_newVersion.forEach(function(v,k){
let _v = parseInt(v),
_oldV = parseInt(_oldVersion[k]||'0');
if(_v === _oldV){
_vMap[k] = 0;
}else if(_v > _oldV){
_vMap[k] = 1;
}else{
_vMap[k] = 0;
}
});
if(_vMap[0]===0&&_vMap[1]===1){
return false;
}
return parseInt(_vMap.join('')) > 0;
}