百度小程序,正确比较版本号的方式

09月/09日/小程序/浏览 170

大多数的软件的版本号都是使用的 x.x.x.x 的字符串格式,如何正确的比较这种格式的版本号呢?


直接比较字符串是不行的,比如 1.9.1.0 和 1.10.0.0 会出现数字和符号 . 比较的情况,结果肯定是不对了。


将字符串转化成数字再比较就更不对了。


只能把字符串按符号 . 分割成数组,然后依次比较数字大小。


代码示例:


function compareVersion(currentVersion, uncheckedVersion) {
    let v1 = currentVersion.split('.').map(v => parseInt(v));
    let v2 = uncheckedVersion.split('.').map(v => parseInt(v));

    const len = Math.max(v1.length, v2.length);

    for (let i = 0; i < len; i++) {
        i >= v1.length && v1.push(0);
        i >= v2.length && v2.push(0);
        if (v1[i] > v2[i]) {
            return true;
        }
        else if (v1[i] < v2[i]) {
            return false;
        }
    }
    return true;
}


true 表示当前版本不小于要比较的版本。

发表评论

暂无评论,抢个沙发...

客服 工单