比较两个版本号, 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));
}