实现string2Int函数

第一种,使用正则表达式实现。

function string2Int(str){
    var num = str.match(/^((\-|\+)?(\d+))/);
    if(!num){
        return NaN;
    }
    return +num[0];
}

 

第二种,使用map方式实现。

function string2Int(str){
    var status = true;
    var num = '';
    Array.prototype.map.call(str, function(v, i){
        if(!status){
            return;
        }
        if((i == 0 && (v === '-' || v === '+')) || (Number(v) === Number(v))){
            num += v;
        }else{
            status = false;
            return;
        }
    })
    if(num === '-' || num === '+'){
        return NaN;
    }else{
        return Number(num)
    }
}

  

第三种,使用reduce方式实现。

function string2Int(str){
    var status = true;
    var num = Array.prototype.reduce.call(str, function(total, v, i){
        if(!((total === '-' || total === '+') && i === 1)){
            if(Number(total) !== Number(total)){
                return NaN;
            }
        }
        if(Number(v) === Number(v) && status){
            return total + v;
        }else{
            status = false;
            return total;
        }
    });
    return Number(num);
}

  

 

转载于:https://www.cnblogs.com/muyunren/articles/6488713.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值