稳定-排序后,值相同的子元素是否会维持之前的顺序。
版本号判断:
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));