筆試題:判斷兩個版本號

// 軟件版本號有四部分組成,第一部分爲主版本號,第二部分爲次版本號,第三部分爲修訂版本號,第四部分爲日期版本號加希臘字母版本號,希臘字母版本號共有五種,分別爲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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章