【JavaScript】版本判断

用于客户端和服务端进行版本更新判断使用,如有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;
}
相关推荐
不务正业的前端学徒3 分钟前
手写简单的call bind apply
前端
jump_jump6 分钟前
Ripple:一个现代的响应式 UI 框架
前端·javascript·前端框架
用户9047066835714 分钟前
Nuxt css 如何写?
前端
夏天想15 分钟前
element-plus的输入数字组件el-input-number 显示了 加减按钮(+ -) 和 小三角箭头(上下箭头),怎么去掉+,-或者箭头
前端·javascript·vue.js
0思必得016 分钟前
[Web自动化] Selenium基础介绍
前端·python·selenium·自动化·web自动化
Filotimo_18 分钟前
前端.d.ts文件作用
前端
进击的野人19 分钟前
Vue 3 响应式数据解构:toRef 与 toRefs 的深度解析
前端·vue.js·前端框架
ohyeah20 分钟前
CSS 作用域隔离实战:React、Vue 与 Styled Components 的三种范式
前端
二哈喇子!36 分钟前
前端HTML、CSS、JS、VUE 汇总
开发语言·前端
小白路过36 分钟前
node-sass和sass兼容性使用
前端·rust·sass