【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;
}
相关推荐
程序员海军2 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
zttbee3 小时前
echarts图表tooltip色块失效
前端·javascript·echarts
excel4 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
子兮曰4 小时前
CSS 复现 23 种设计风格:从拟物到液态玻璃的成本阶梯与兜底写法【实战】
前端·css·视觉设计
虚无境5 小时前
如何用AI帮我写出实用的插件
前端·javascript·ai编程
柳杉6 小时前
从数字化到数智化:3D 可视化大屏的下一个五年
前端·ai编程·数据可视化
zimoyin6 小时前
在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)
javascript·c#·自动化
风骏时光牛马6 小时前
从零到实战:AI全栈学习进阶路线
前端
FRing037 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数
用户360055579007 小时前
Kestrel_VLLM - 15 · decode 优化四连击:19ms → 8ms
前端