【发布时间】:2022-11-14 18:30:25
【问题描述】:
这是软件版本号:
"1.0", "1.0.1", "2.0", "2.0.0.1", "2.0.1"
我怎么能比较这个?
假设正确的顺序是:
"1.0", "1.0.1", "2.0", "2.0.0.1", "2.0.1"
这个想法很简单......: 读取第一个数字,然后是第二个,然后是第三个...... 但我无法将版本号转换为浮点数... 您还可以看到这样的版本号:
"1.0.0.0", "1.0.1.0", "2.0.0.0", "2.0.0.1", "2.0.1.0"
这更清楚地看到背后的想法是什么...... 但是,我怎样才能将它转换成计算机程序呢?
【问题讨论】:
-
这将是一个很好的 fizzbuzz 型面试问题。
-
这就是为什么所有软件版本号都应该是整数,如 2001403。当你想以某种友好的方式显示它时,如“2.0.14.3”,然后在演示时格式化版本号。
-
这里的一般问题是语义版本比较,这是非常重要的(参见semver.org 的#11)。幸运的是,有一个官方库,semantic versioner for npm。
-
找到了一个比较semvers的simple script
-
@jarmod 所以你有
2001403,是2.0.14.3还是20.1.4.3还是2.0.1.43?如果没有缺陷,这种方法是有限制的。
标签: javascript algorithm sorting