给你两个 版本号字符串 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;
}