// 軟件版本號有四部分組成,第一部分爲主版本號,第二部分爲次版本號,第三部分爲修訂版本號,第四部分爲日期版本號加希臘字母版本號,希臘字母版本號共有五種,分別爲base、alpha、beta 、RC 、 release
function compareVersions(v1,v2){
var v1s = v1.split(‘.’);
var v2s = v2.split(‘.’);
var res = compare(v1s,v2s);
// console.log(res);
if(1 === res){
return ‘第一個版本高’;
}else if(-1 === res){
return ‘第二個版本高’;
}else if(0 === res){
return ‘兩個版本相同’;
}
}
function compare(v1,v2){
var lens = v1.length>v2.length?v2.length:v1.length;
for(let i = 0;i<lens;i++){
console.log(i);
v1[i] = v1[i].split('');
v2[i] = v2[i].split('');
var len = v1[i].length>v2[i].length?v2[i].length:v1[i].length;
// 相同長度版本判別
for(let j = 0;j<len;j++){
console.log(v1[i][j],v2[i][j])
if(v1[i][j]>v2[i][j]){
return 1;
}else if(v1[i][j]<v2[i][j]){
return -1;
}else{
}
}
// 不同長度版本追加判別
if(v1[i].length>v2[i].length){
return 1;
}else if(v1[i].length<v2[i].length){
return -1;
}else{
}
}
if(v1.length>v2.length){
return 1;
}else if(v1.length<v2.length){
return -1;
}else{
return 0;
}
}
let v1 = '2.2.3aa';
let v2 = '1.2.3a';
console.log(compareVersions(v1,v2));