用于客户端和服务端进行版本更新判断使用,如有BUG,还望指出
效果
console.log(isAllowUpdate('1','2.0.0'), // trueisAllowUpdate('2.0','2.0.0'), // falseisAllowUpdate('2.0','2.0.1'), // trueisAllowUpdate('2.1.1','2.1.2'), // trueisAllowUpdate('2.1.3','2.1.2'), // falseisAllowUpdate('2.2.3','2.1.2'), // falseisAllowUpdate('3.1.2','2.1.2'), // falseisAllowUpdate('3.0.0','2.1.2'), // false
)
实现
// 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;
}