【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;
}
相关推荐
小左OvO1 分钟前
基于百度地图JSAPI Three的城市公交客流可视化(三)——实时公交
前端·javascript·vue.js
IT_陈寒13 分钟前
Vite 5新特性解析:10个提速技巧让你的开发效率翻倍 🚀
前端·人工智能·后端
焦糖小布丁18 分钟前
通配符证书能给几个网站用?
前端
qiao若huan喜24 分钟前
6、webgl 基本概念 + 四边形纹理
前端·javascript·信息可视化·webgl
刘一说35 分钟前
深入理解 Spring Boot Web 开发中的全局异常统一处理机制
前端·spring boot·后端
啃火龙果的兔子1 小时前
前端导出大量数据到PDF方案
前端·pdf
Lj2_jOker1 小时前
QT 给Qimage数据赋值,显示异常,像素对齐的坑
开发语言·前端·qt
csj501 小时前
前端基础之《React(7)—webpack简介-ESLint集成》
前端·react
Jonathan Star1 小时前
CSS margin 折叠现象的实际代码示例
javascript·css·css3
咚咚咚小柒1 小时前
【前端】Webpack相关(长期更新)
前端·javascript·webpack·前端框架·node.js·vue·scss