应用版本与不同版本格式进行比较

时间:2018-02-20 15:05:11

标签: javascript node.js

需要一些需要一些专家建议的代码的帮助。这是我自己编写的代码,用于比较应用程序的版本和应用商店版本的代码。它有一些小缺陷,但我无法继续前进。任何帮助都将非常有价值。

function versionCompare(appVersionInStore, appVersionInReq) {
  var versionStoreArray = appVersionInStore.split('.');
  var versionReqArray = appVersionInReq.split('.');
  var arrIndex;
  var len = Math.max(versionStoreArray.length, versionReqArray.length);
  for (var i = 0; i < versionStoreArray.length; i++) {
    if (versionStoreArray[i].length < 2) {
      versionStoreArray[i] = '0' + versionStoreArray[i];
    }
  }
  for (var i = 0; i < versionReqArray.length; i++) {
    if (versionReqArray[i].length < 2) {
      versionReqArray[i] = '0' + versionReqArray[i];
    }
  }
  appVersionInStore = versionStoreArray.join('');
  appVersionInReq = versionReqArray.join('');
  appVersionInStore = parseInt(appVersionInStore);
  appVersionInReq = parseInt(appVersionInReq);
  var result = appVersionInStore - appVersionInReq;
  return result;
}


var versionDifference = versionCompare('3.1.2', '3.1.7');
  if (versionDifference >= 4) {
    appUpdatePolicy = 'MANDATORY';
  } else if ((versionDifference >= 1) && (versionDifference <= 3)) {
    appUpdatePolicy = 'OPTIONAL';
  } else if ((versionDifference <= 0)) {
    appUpdatePolicy = 'NONE';
  }

 return appUpdatePolicy;

这将返回appUpdatePolicy,其中包含三个值--MNADATORY,OPTIONAL或ORNONE,基于versionCompare()函数。现在,如果版本的格式相似(3.1.1 - 2十进制或17.2 - 1十进制)并进行比较,它的工作正常。如果它们的格式不同(3.1.2与17.2相比),那就不行了。对此有何帮助?

我们有一个用例,其中版本可能是不同的格式。

0 个答案:

没有答案