function compareVersions (version1, version2) {
if (version1 >= version2) {
return true;
}
else {
return false;
}
compareVersions("11", "10"); // returns true
compareVersions("11", "11"); // returns true
compareVersions("10.4.6", "10.4"); // returns true
compareVersions("10.4", "11"); // returns false
compareVersions("10.4", "10.10"); // returns false
compareVersions("10.4.9", "10.5"); // returns false
compareVersions(“10.4”,“10.10”);它不是与颠覆相比,所以它会是真的。我该如何解决这个问题?
答案 0 :(得分:0)
function compareVersions(v1, v2){
var _v1 = v1.split('.');
var _v2 = v2.split('.');
var i=0;
for(; i<_v1.length && i<_v2.length && _v1[i]*1==_v2[i]*1; i++);
return !(_v1[i]*1<_v2[i]*1);
}
答案 1 :(得分:0)
考虑比较只对上下文有意义。 假设(可怕的话)你遵守semantic versioning。
如果是这样,您可以使用更完整地处理此问题的库,例如https://github.com/npm/node-semver
如果没有这样的背景,你必须担心“1.0.0-alpha”与“1.0.0”比较等等。