"2.1.0") false ("2.2.1" > "2.1.0") true-6ren">
gpt4 book ai didi

javascript - 版本号比较如何在 JavaScript 中正常工作?

转载 作者:行者123 更新时间:2023-12-01 11:21:14 25 4
gpt4 key购买 nike

我能够在 JavaScript 中正确比较版本号,而无需拆分和检查每个十进制数字。它是如何工作的?

("2.0.1" > "2.1.0")
false

("2.2.1" > "2.1.0")
true

("2.5.1" > "2.0.5")
true

谢谢。

最佳答案

不,您无法“在 JavaScript 中正确比较版本号而不必拆分”

"2.2.8" > "2.2.10" // true

这些字符串从左到右逐个字符地进行比较。

您确实需要一个接一个地拆分和比较数字,这很容易。例如,您可以如何实现它:
function Version(s){
this.arr = s.split('.').map(Number);
}
Version.prototype.compareTo = function(v){
for (var i=0; ;i++) {
if (i>=v.arr.length) return i>=this.arr.length ? 0 : 1;
if (i>=this.arr.length) return -1;
var diff = this.arr[i]-v.arr[i]
if (diff) return diff>0 ? 1 : -1;
}
}

console.log((new Version("1.1.1")).compareTo(new Version("1.2.1"))); // -1

console.log((new Version("1.1.1")).compareTo(new Version("1.10.1"))); // -1

console.log((new Version("1.10.1.2")).compareTo(new Version("1.10.1"))); // 1

console.log((new Version("1.10.1.2")).compareTo(new Version("1.10.1.2"))); // 0

关于javascript - 版本号比较如何在 JavaScript 中正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com