需要一些需要一些专家建议的代码的帮助。这是我自己编写的代码,用于比较应用程序的版本和应用商店版本的代码。它有一些小缺陷,但我无法继续前进。任何帮助都将非常有价值。
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相比),那就不行了。对此有何帮助?
我们有一个用例,其中版本可能是不同的格式。