157. semver compare
by shan10213223
JavaScript
function compare(str1, str2) {
if (!str1 || !str2 || str1.length === 0 || str2.length === 0) return undefined;
const v1 = str1.split('.').map(str => Number(str));
const v2 = str2.split('.').map(str => Number(str));
if (v1.length !== v2.length) return undefined;
const MAX_LEVEL = v1.length;
let cur = 0;
while (cur < MAX_LEVEL) {
if (v1[cur] > v2[cur]) return 1;
else if (v1[cur] < v2[cur]) return -1;
else {
if (cur === MAX_LEVEL-1 && v1[cur] === v2[cur]) {
return 0;
}
cur++
}
}
return undefined;
}
/* console.log('test1: ', compare('12.1.0', '12.0.9')); */
// 1, meaning first one is greater
/* console.log('test2: ', compare('12.1.0', '12.1.2')); */
// -1, meaning latter one is greater
console.log('test3: ', compare('5.0.1', '5.0.1'));
// 0, meaning they are equal.