首页 > 试题广场 >

判断版本

[编程题]判断版本
  • 热度指数:23097 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请补全JavaScript代码,该函数接收两个参数分别为旧版本、新版本,当新版本高于旧版本时表明需要更新,返回true,否则返回false。
注意:
1. 版本号格式均为"X.X.X"
2. X∈[0,9]
3. 当两个版本号相同时,不需要更新
三个X都是1位数[0,9],直接比较字符串大小就好。
return newVersion > oldVersion
发表于 2021-12-07 14:03:32 回复(8)
看评论之前
<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        
        <script type="text/javascript">
            const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                let oldArr = oldVersion.split('.')
                let newArr = newVersion.split('.')
                if(newArr[0] > oldArr[0]){
                    return true
                }
                else if(newArr[0] == oldArr[0]){
                    if(newArr[1] > oldArr[1]){
                        return true
                    }
                    else if(newArr[1] == oldArr[1]){
                        if(newArr[2] > oldArr[2]){
                            return true
                        }
                        else{
                            return false
                        }
                    }
                    else{
                        return false
                    }
                }
                else{
                    return false
                }
            }
        </script>
    </body>
</html>

看评论后
return oldVersion.replace('.','') < newVersion.replace('.','')
发表于 2022-01-29 17:45:32 回复(5)
return oldVersion.replace('.','') > newVersion.replace('.','') ? false : true
发表于 2021-12-01 14:41:36 回复(0)
我的解题方法比较笨;
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        
        <script type="text/javascript">
            const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码 
                oldVersion = oldVersion.split(".");
                newVersion = newVersion.split(".");
                
                if(oldVersion[0]>newVersion[0]) return false;
                
                if(oldVersion[0]<newVersion[0]) return true;
                
                if(oldVersion[0] == newVersion[0]){
                    if(oldVersion[1]>newVersion[1]) return false;
                    if(oldVersion[1]<newVersion[1]) return true;
                    if(oldVersion[2]>newVersion[2]) return false;
                    if(oldVersion[2]<newVersion[2]) return true;
                }
                    
                
            }
        </script>
    </body>
</html>

发表于 2021-12-04 14:29:23 回复(4)
        const _shouldUpdate = (oldVersion, newVersion) => {
            // 补全代码

            //直接进行比较也可以
            return oldVersion < newVersion;

            //比较简单的方法
            var oldV = oldVersion.split('.').join('');
            var newV = newVersion.split('.').join('');
            return oldV < newV;

            //将数组每个数进行比较
            var oldV = oldVersion.split('.');
            var newV = newVersion.split('.');
            for (var i = 0; i < 3; i++) {
                if (oldV[i] < newV[i]) {
                    return true;
                } else {
                    return false;
                }
            }

        }
发表于 2022-04-16 22:15:28 回复(3)
 return oldVersion.replace('.', '') < newVersion.replace('.', '')
发表于 2021-12-15 17:08:13 回复(0)
return oldVersion.replace(/\./g, "") < newVersion.replace(/\./g, "")

发表于 2023-03-28 17:39:19 回复(0)
const _shouldUpdate = (oldVersion, newVersion) => {
    // 补全代码
    const oldList = oldVersion.split('.')
    const newList = newVersion.split('.')
        return newList.some((item, index) => {
            return Number(item) > Number(oldList[index] || 0)
        })
}

发表于 2022-02-22 14:51:48 回复(0)
 if (oldVersion.indexOf('.') !== -1 && newVersion.indexOf('.') !== -1) {
            let num1 = Number(oldVersion.replaceAll('.', ''))
            let num2 = Number(newVersion.replaceAll('.', ''))
            if (num1 > num2) {
                return false
            } else {
                return true
            }
        }      //不知道哪里错了...
发表于 2022-02-11 17:11:54 回复(2)
1!!!!!!!5!!!!!!!!!
const _shouldUpdate = (oldVersion, newVersion) => {
const transfer = (version) => {
const arr = version.split('.');
const big = arr[0] * 1000000;
const middle = arr[1] * 1000;
const small = arr[2] * 1;
return big + middle + small;
};

// 补全代码
const powerVersionOld = transfer(oldVersion);
const powerVersionNew = transfer(newVersion);
return powerVersionNew > powerVersionOld;
}

发表于 2023-12-26 15:45:23 回复(0)
一种很常规的解题思路:把X.X.X转化为整数的形式,然后进行比较
 const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                let arr1=oldVersion.split('.')
                let arr2=newVersion.split('.')
                let num1=0
                let num2=0
                for(let i=0;i<arr1.length;i++){
                    //把X.X.X 转化为 整数的形式,然后进行比较
                    num1+=arr1[i]+num1*10
                    num2+=arr2[i]+num2*10
                }
                return num2>num1?true:false

            }


                    


发表于 2023-07-12 18:08:27 回复(0)
const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                let oldList = oldVersion.split('.').join('')
                let newList = newVersion.split('.').join('')
                if(newList>oldList){
                    return true
                }
                return false
            }

发表于 2023-05-09 00:16:10 回复(0)
            const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                var oldv = parseInt(oldVersion.split('.').join(''))
                var newv = parseInt(newVersion.split('.').join(''))
                if (oldv < newv) {
                    return true
                }
                return false
            }
发表于 2022-05-23 16:36:18 回复(0)
直接用三元表达式 
const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                return oldVersion<newVersion?true:false
            }

发表于 2022-03-29 11:02:59 回复(0)
let old=oldVersion.split('.').join('');
                let new1=newVersion.split('.').join('');
                return new1>old?true:false;

发表于 2021-12-02 17:20:38 回复(1)
//=== 字符串的比较
 const _shouldUpdate = (oldVersion, newVersion) => {
     // 补全代码
     return newVersion === oldVersion ? false: newVersion > oldVersion ?true:false;
 }

发表于 2024-03-26 00:00:02 回复(0)
哈哈 格式的缘故 这个版本直接进行比较就好 return newVersion > oldVersion
发表于 2023-11-26 16:29:11 回复(0)
     const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                 var old = oldVersion.split(".").join("");
             var news = newVersion.split(".").join("");
             return news > old ? true : false
            }
发表于 2023-09-24 16:32:58 回复(0)
const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                let oldArray = oldVersion.split('.');
                let newArray = newVersion.split('.');
                let result = [];

                for (let i = 0; i < 3; i++) {
                    // console.log(oldArray, newArray)
                    result.push(oldArray.shift() < newArray.shift());
                }

                return result.some(boolData => boolData === true)
            }
发表于 2023-08-24 10:54:12 回复(0)
 const _shouldUpdate = (oldVersion, newVersion) => {
                // 补全代码
                var oldarr=oldVersion.split(".")
                var newarr=newVersion.split(".")
                var flag=false;
                for(var i=0;i<oldarr.length;i++){
                    if(newarr[i]>oldarr[i]){
                        flag=true
                    }
                }
                return flag
            }
发表于 2023-07-07 11:29:26 回复(0)