js判断两个版本号的大小

function compareVersion(v1, v2) {
  if (v1 == v2) {
    return 0;
  }

  const vs1 = v1.split(".").map(a => parseInt(a));
  const vs2 = v2.split(".").map(a => parseInt(a));

  const length = Math.min(vs1.length, vs2.length);
  for (let i = 0; i < length; i++) {
    if (vs1[i] > vs2[i]) {
      return 1;
    } else if (vs1[i] < vs2[i]) {
      return -1;
    }
  }

  if (length == vs1.length) {
    return -1;
  } else {
    return 1;
  }
}
//情况一:
compareVersion('2.2.3','2.2.2');   //1
//当 v1 大于 v2 时返回  1

//情况二:
compareVersion('2.2.2','2.2.2');   //0
//当 v1 等于 v2 时返回  0

//情况二:
compareVersion('1.2.3','2.2.2');   //-1
//当 v1 小于 v2 时返回  -1

注意事项:

es5环境运行请使用

function compareVersion(v1, v2) {
  if (v1 == v2) {
    return 0;
  }

  var vs1 = v1.split(".").map(a => parseInt(a));
  var vs2 = v2.split(".").map(a => parseInt(a));

  var length = Math.min(vs1.length, vs2.length);
  for (var i = 0; i < length; i++) {
    if (vs1[i] > vs2[i]) {
      return 1;
    } else if (vs1[i] < vs2[i]) {
      return -1;
    }
  }

  if (length == vs1.length) {
    return -1;
  } else {
    return 1;
  }
}

版权声明:本文为liushijun_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。