版本号排序--结合sort方法

47 阅读1分钟

稳定-排序后,值相同的子元素是否会维持之前的顺序。

版本号判断:

const version_arr = ['1.1.1', '2.0', '1.1.2', '2.1.2.2.2.2'];

function compareVersion(arr) {
    return arr.sort((a,b)=>{    
        //比较规则,转化为数组,按位比较,如果先出现undefined情况,证明位数短,则是小的那一个。
        arrA = a.split('.');
        arrB = b.split('.');
        for(let i =0; i<arrA.length||i<arrB.length;i++){
            if(arrA[i]===undefined){
                return -1;
            }else if(arrB[i]===undefined){
                return 1;
            }else if(arrA[i]===arrB[i]){
                continue;
            }else{
                return Number(arrA[i])-Number(arrB[i]);
            }
        }
    })
    return arr;
}
console.log(compareVersion(version_arr));