以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
157. semver 比较

下面是一种实现方式:

function compare(ver1, ver2) {  var v1 = ver1.split('.');  var v2 = ver2.split('.');  var len = Math.max(v1.length, v2.length);  for (var i = 0; i < len; i++) {    var num1 = parseInt(v1[i] || 0, 10);    var num2 = parseInt(v2[i] || 0, 10);    if (num1 < num2) {      return -1;    } else if (num1 > num2) {      return 1;    }  }  return 0;}

这个实现的思路是将版本字符串拆分成数字数组,然后从左到右依次比较对应位置的数字,如果出现不相等的数字,则可用于比较大小,如果全部数字相等,则两个版本号相等。

举例说明:

对于 compare('12.1.0', '12.0.9')v1 将为 [12, 1, 0]v2 将为 [12, 0, 9],因此需要依次比较 12101209,当比较到第二个数字 10 时,发现 1 大于 0,因此输出 1

对于 compare('12.1.0', '12.1.2'),同样需要依次比较 12101212,在第三个数字 02 处发现不相等,因此可用于比较大小,输出 -1

对于 compare('5.0.1', '5.0.1'),两个版本号相等,输出 0