JS实现版本号排序---v.v.v格式

398 阅读1分钟
比较两个版本号, v1大于等于v2,返回-1,否则返回1
function compareVersion(v1, v2) {
    const pa = v1.split('.');
    const pb = v2.split('.');
    const maxLen = pa.length > pb.length ? pa.length : pb.length;
    for(let i = 0; i < maxLen; i++) {
        const na = Number(pa[i]);
        const nb = Number(pb[i]);
        if(na > nb) return -1;
        if(na < nb) return 1;
        if(!isNaN(na) && isNaN(nb)) return -1;
        if(isNaN(na) && !isNaN(na)) return 1;
    }
    return 0;
}
版本号数组排序
function sort(versions) {
    return versions.sort((v1, v2) => compareVersion(v1, v2));
}