【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;
}
相关推荐
归于尽9 分钟前
V8 引擎是如何给 JS"打扫房间"的 ?
前端·javascript
小old弟9 分钟前
让对象保持定义的顺序来排列
前端
漫天星梦10 分钟前
前端列表页大数据内存优化的思考
前端·面试
自由逐风10 分钟前
JS 处理长整型数字的坑:从雪花 ID 精度丢失说起
javascript
爱学习的茄子11 分钟前
从0到1:揭秘前端网络请求的进化之路
前端·javascript·面试
云动雨颤14 分钟前
流量分发代码实战|学会用JS控制用户访问路径
javascript
欢乐时光c15 分钟前
常见请求头响应头的含义
前端·面试
wzyoung15 分钟前
element-ui让el-form绑定的深层对象也能通过内置的resetFields方法重置
前端·javascript·vue.js
用户730870117930815 分钟前
使用 CSS background-blend-mode 创造惊艳的视觉效果
前端
高端章鱼哥16 分钟前
Python 项目快速部署到 Linux 服务器基础教程
前端