1. 题目
versions:是一个项目的版本号数组(非空),每个版本号由以小数点分隔的三个非负整数组成
如,1.22.3),
现需要你写一个函数sortVersions,对版本号进行从小到大排序。
要求对versions从小到大排序,注意1.45.1比1.5.0大,10.0.1比9.99.9大,0.0.2比0.0.1大.
2. 代码实现
let arr = [
"1.45.1",
"1.5.0",
"0.1.1",
"2.3.3",
'0.3002.1",4.2',
"4.3.5",
"4.3.4.5",
];
function sortVersion(arr) {
return arr.sort((version1, version2) => {
const v1 = version1.split(".");
const v2 = version2.split(".");
const len = Math.max(v1.length, v2.length);
for (let i = 0; i < len; i++) {
const n1 = parseInt(v1[i] || 0);
const n2 = parseInt(v2[i] || 0);
if (n1 > n2) return 1;
if (n1 < n2) return -1;
}
return 0;
});
}
console.log(sortVersion(arr));