1、版本号比较
题目:力扣
思路:将版本号转成数组,两两对应比较
代码:
var compareVersion = function(version1, version2) {
const arr1 = version1.split('.').map(e => e * 1)
const arr2 = version2.split('.').map(e => e * 1)
const length = Math.max(arr1.length, arr2.length)
for (let i = 0; i < length; i ++) {
if ((arr1[i] || 0) > (arr2[i] || 0)) return 1
if ((arr1[i] || 0) < (arr2[i] || 0)) return -1
}
return 0
};
2、版本号排序
字节面试时就遇到了这道题,给定版本号['0.1.1', '2.3.3', '0.3002.1', '4.2', '4.3.5', '4.3.4.5'],输出版本号从小到大排序的结果。
思路:数组sort方法两参数代表任意两项,排序版本号问题就转变成了比较两版本大小的问题
代码:
const versionList = ['0.1.1', '2.3.3', '0.3002.1', '4.2', '4.3.5', '4.3.4.5']
function sortVersion (list) {
return list.sort((version1, version2) => {
const arr1 = version1.split('.').map(e => e * 1)
const arr2 = version2.split('.').map(e => e * 1)
const length = Math.max(arr1.length, arr2.length)
for (let i = 0; i < length; i ++) {
if ((arr1[i] || 0) > (arr2[i] || 0)) return 1
if ((arr1[i] || 0) < (arr2[i] || 0)) return -1
}
return 0
})
}
console.log(sortVersion(versionList));