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.