欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談JavaScript中的parseInt()的妙用

 更新時(shí)間:2021年07月09日 11:02:54   作者:小法丶  
本文主要介紹了JavaScript中的parseInt()的妙用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

起因

寫(xiě)這篇博客的起因是今天在刷leetcode的每日一題,是一道字符串轉(zhuǎn)換整數(shù) (atoi)的題,感興趣的話可以點(diǎn)擊題目名稱(chēng)去看一下具體描述。在我多次debug終于成功提交之后,去評(píng)論區(qū)看了一下大佬們的解題思路,看完之后不禁感嘆javascript中原來(lái)parseInt( )已經(jīng)這么優(yōu)秀了啊。這告訴我了一個(gè)道理,我們自認(rèn)為再熟悉不過(guò)的api,可能我們并沒(méi)有真正意義上的掌握?!?/p>

我的解答

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    str = str.trim();
    //截取字符串第一個(gè)字符
    var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/;

    if(!regSymbol.test(firstChar) && !regNumber.test(firstChar)){
        return 0;
    }

    //第一個(gè)字符為+或者-
    if(regSymbol.test(firstChar)){
        var sliceStr = str.slice(1,str.length);
        for(var i=0;i<sliceStr.length;i++){
            if(regNumber.test(sliceStr.charAt(i))){
                res += sliceStr.charAt(i);
            }else{
                break;
            }
        }
        
        (res.length) ? res = parseInt(firstChar + res) : res = 0;

        if(firstChar == '-' && res < Math.pow(-2,31)){
            res = Math.pow(-2,31);
        }

        if(firstChar == '+' && res > Math.pow(2,31) - 1){
            res = Math.pow(2,31) - 1;
        }

        return res;
    }

    //第一個(gè)字符為數(shù)字
    if(regNumber.test(firstChar)){
        var sliceStr = str;
        for(var i=0;i<sliceStr.length;i++){
            if(regNumber.test(sliceStr.charAt(i))){
                res += sliceStr.charAt(i);
            }else{
                break;
            }
        }

        if(parseInt(res) > Math.pow(2,31) - 1){
            res = Math.pow(2,31) - 1;
        }

        return res;
    }
};

 大佬的解答

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    const number = parseInt(str, 10);

    if(isNaN(number)) {
        return 0;
    } else if (number < Math.pow(-2, 31) || number > Math.pow(2, 31) - 1) {
        return number < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1;
    } else {
        return number;
    }
};

通過(guò)對(duì)比,我們了解到j(luò)avascript中的parseInt()已經(jīng)做了截取空字符串、首字母判斷、number類(lèi)型結(jié)果返回等一系列操作。剛好與今天的每日一題的需求完美契合,使用parseInt()來(lái)解決這個(gè)題目簡(jiǎn)直不要太爽。

到此這篇關(guān)于淺談JavaScript中的parseInt()的妙用的文章就介紹到這了,更多相關(guān)JavaScript parseInt()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論