Lc165 版本号比较


样例:

版本号有这样几个特性:

  • 通过小数点分割 – splice(‘.’) 分割后以字符串的形式保存在数组中 举个例子

     let version = '123.456.789.000';version.split('.'); // ["123", "456", "789", "000"]
    
  • 可能包含前导零 – parsenInt("00123") = 123 将字符串去除前导零
  • 位数不齐用0来代替

步骤:

  1. 以小数点分割字符串
  2. 取两个数组中长度较长的那个用来遍历数组
  3. 在版本号不等长情况下,当元素为undefined时取0,否则使用parseInt()清除前导0进行比较
var compareVersion = function(version1, version2) {let v1 = version1.split('.');let v2 = version2.split('.');const len = Math.max(v1.length, v2.length);for (let i = 0; i < len; i ++) {const res1 = v1[i] === undefined ? 0 : parseInt(v1[i]);const res2 = v2[i] === undefined ? 0 : parseInt(v2[i]);if (res1 !== res2) {return res1 > res2 ? 1 : -1;}}return 0;
};

自己动手试一下

Lc165-版本号比较相关推荐

  1. python -如何查看已经安装xlrd 的版本号

    如何查看已经安装xlrd 的版本号 方法一: 使用pip show xlrd 效果如下: 方法二: 使用pip list 查看 效果如下

  2. Android 获取App的版本号与版本名称的2中方法

    1 使用BuildConfig Log.e("-------版本名",BuildConfig.VERSION_NAME);Log.e("-------版本号", ...

  3. 一些js代码,自己备用的。高手不要笑话我。。(跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统)...

    跨浏览器基础事件 View Code 1 //跨浏览器添加事件 2 function addEvent(obj, type, fn) { 3 if (obj.addEventListener) { 4 ...

  4. 隐藏Nginx版本号的安全性与方法

    搭建好nginx或者apache,为了安全起见我们都会隐藏他们的版本号,这边讲的是nginx的版本号,如果你也想隐藏apache的版本号,那请点前面的链接.请看nginx版本号信息隐藏文章. Ngin ...

  5. linux 内核 config_localversion_auto,关于CONFIG_LOCALVERSION_AUTO设置去掉内核版本号SVN后缀...

    最近在TI 的DVSDK下写驱动模块时老受linux内核svn版本号问题的困扰,如"2.6.37-svn41"."2.6.37-svn51"等等,svn版本变一 ...

  6. ATS 4.2.3隐藏服务器名称及版本号的方法

    为了不想让竞争对手看到我们使用的服务器的技术细节,我们可以将线上运行的ATS修改为我们自己设置的名字以及相应的版本号.在线修改如下选项 traffic_line -s proxy.config.htt ...

  7. # Qt程序版本号使用

    Qt程序版本号使用 在pro文件中添加(版本号可以3段或者4段) VERSION=1.0.1.2DEFINES += APP_VERSION=\\\"$${VERSION}\\\" ...

  8. package.json 依赖包版本号

    依赖包版本号格式:major.minor.patch major 为主版本号(大版本号),变化了表示有了一个不兼容上个版本的大更改. minor 为次版本号(小版本号),变化了表示增加了新功能,并且可 ...

  9. AndroidStudio脚本命令指定AAR生成目录与版本号

    A build.gradle全局常量: //根路径def ROOT_PATH = rootProject.rootDir.pathdef GROUP = "com.genialsir.mob ...

最新文章

  1. 关系型数据库的ACID规则
  2. Android的系统服务一览
  3. java xfire下载_XFIRE教程 PDF 下载
  4. ubuntu环境下一键切换python的virtualenv虚拟环境
  5. 【HTML】 HTML基础知识 表单
  6. jQuery—tab栏切换
  7. contos6.5卸载php7,centos8 测地卸载php5.6 与卸载php7
  8. workbench拓扑优化教程_workbenchds拓扑优化分析.ppt
  9. Vim高级使用 - CentOS下使用VIM打造C/C++开发环境
  10. linux python 信号,Python模块之信号(signal)
  11. 十张叫做幸福的照片(贴图)
  12. 如何在MATLAB中定义一些全局常量
  13. c语言常用单词表格,C语言常用单词
  14. HTML示例08---CSS3概述
  15. IAR EWARM教程
  16. 2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版!!!!!
  17. 板内板间通信协议及接口(七)现场总线及modbus协议
  18. 上海职称英语计算机取消,上海地区职称英语考试是不是取消了?
  19. java报表是什么_什么是报表工具
  20. ADOBE AIR是什么?

热门文章

  1. C/C++ debug(一)
  2. 导出excel 数据取一次合理还是分页取合理_一张报表模板替代数百张Excel表格,用它让报表工作更轻松...
  3. python中对象的概念是什么_python面向对象编程的基本概念
  4. java负数用什么类型定义_(转) Java中的负数及基本类型的转型详解
  5. eclipse无线循环输出时,怎样关闭
  6. python常用代码总结-常见的排序算法的总结及python代码实现
  7. 2018年python工作好找吗-Python的发展状况-2018年
  8. 深度学习进行语音识别的方法 如何建立自己的语音识别系统
  9. 语音 识别_语音识别_qq语音识别 - 云+社区 - 腾讯云
  10. asp怎么循环增加字段和字段对应的值_索引该怎么创建?