给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 '.' 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。
比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为 0。
返回规则如下:
- 如果
_version1_ < _version2_返回-1, - 如果
_version1_ > _version2_返回1, - 除此之外返回
0。
function compareVersion(version1: string, version2: string): number {
const v1 = version1.split('.');
const v2 = version2.split('.');
// 取两个数组中最长的长度
const maxLength = Math.max(v1.length, v2.length);
for (let i = 0; i < maxLength; i++) {
// 如果数组已经越界,则取 0(相当于补 0 逻辑)
const num1 = i < v1.length ? parseInt(v1[i]) : 0;
const num2 = i < v2.length ? parseInt(v2[i]) : 0;
if (num1 > num2) return 1;
if (num1 < num2) return -1;
}
// 全程相等
return 0;
}