//  将字符串转化为整数   比如  '  -123'  :  -123       '1829 whdi ' : 1829

//  1.  .trim()
//  2.  拿到数字的符号  -  +
//  3.  取连续整数,非连续的后面的字符就不要了,舍弃
//  4.  溢出判断

function intNum(str) {
    let secStr = str.trim()   // trim() 不改变原字符串,所以就必须另外定义一个变量
    let result = 0
    let start = 0             // 当中下标来使用    而不是使用 for(i) 发现start非常好用
    if (secStr.length == 0) {
        return result
    }
    let sign = 1
    if (secStr[start] == '-') {    // 拿到当前的符号
        sign = -1
        start++                    // 默认 每一个数字都会加符号的  
    } else {
        start++
    }
    // 取出连续数字
    while (start < secStr.length) {
        if (secStr[start] == ' ' || typeof secStr[start] == String) {
            return result
        } else {
            result = result * 10 + secStr[start++] * 1 * sign         //  核心原理:上一次的结果*10 + sign*当前值
            console.log(result);
        }
    }
    return result

}

const num = intNum("  +123 345")
console.log(num);
全部评论

相关推荐

gcniz:一天写两千行你闹呢
点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务