比较函数中的版本

时间:2014-10-07 00:43:52

标签: javascript

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”);它不是与颠覆相比,所以它会是真的。我该如何解决这个问题?

2 个答案:

答案 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”比较等等。