【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;
}
相关推荐
Nayana几秒前
前端控制批量请求并发
前端
ssjlincgavw几秒前
前端高手进阶:从十万到千万,我的性能优化终极指南(实战篇)
前端
比老马还六几秒前
Bipes项目二次开发/设置功能-1(五)
前端·javascript
转转技术团队10 分钟前
VDOM 编年史
前端·设计模式·前端框架
蓝瑟忧伤13 分钟前
前端性能体系的全面升级:现代 Web 如何构建可量化、可治理、可演进的性能架构?
前端·架构
申阳15 分钟前
Day 17:03. 基于 Tauri 2.0 开发后台管理系统-登录页面开发
前端·后端·程序员
诸葛亮的芭蕉扇24 分钟前
tree组件点击节点间隙的异常问题分析
前端·javascript·vue.js
GinoWi1 小时前
HTML基本格式 - 第一个HTML网页
前端
顶鲜花的牛粪1 小时前
Astro 项目升级全栈:EdgeOne Pages 部署指南
前端
0***R5151 小时前
前端云原生
前端·云原生