js 数字转英文(笔试遇到过两次

//数字转英文
const arr1 = ["zero","one","two","three","four","five","six","seven","eight","nine"],
    arr2 = ["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],
    arr3 = ["tewnty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],
    arr4 = ["hundred","thousand","million","billion","trillion","quadrillion"];

function doubledight(n){
    var result = "";
    if(parseInt(n)!=0){
        var dd = n.split('');
        if(dd[0]<1){
            result = arr1[dd[1]];
        }else if(dd[0]==1){
            result = arr2[dd[1]];
        }else{
            result = arr3[dd[0]-2] + "-" + arr1[dd[1]];
        }
    }
    return result;
}

function num2Eng(s){
    s = s.split('');
    while(s.indexOf('0')===0){
        s.shift();
    }
    s = s.join('');
    var res = '';
    while(s.length>3){
        res = ',' + s.slice(-3) + res;
        s = s.slice(0,s.length-3);
    }
    if(s){
        res = s + res;
    }

    var fenge = res.split(',');
    var result = "";
    for(let i=0;i<fenge.length;i++){
        if(fenge[i].length === 3){
            result += arr1[fenge[i].substring(0,1)]+" ";//百位
            result += arr4[0];
            if(doubledight(fenge[i].substring(1))!=""){
                result += " and " + doubledight(fenge[i].substring(1));
            }
        }else if(fenge[i].length ==2){
            result +=doubledight(fenge[i]);
        }else if(fenge[i].length == 1){
            result += arr1[fenge[i]];
        }
        if(i<fenge.length -1){
            result += " " +arr4[fenge.length-1-i] + " ";
        }
    }
    return result;
}
var s1 = '2356';
console.log(num2Eng(s1));
var s2 = '9875538376';
console.log(num2Eng(s2));
var s3 = '00000002356';
console.log(num2Eng(s3));

#笔试题目#
全部评论

相关推荐

08-04 22:37
桂林学院 Java
花律:看着感觉不差的,实习还是要看点运气,如果不介意可以试试外包实习,我的简历比楼主都差,都可以进
投递BOSS直聘等公司9个岗位
点赞 评论 收藏
分享
码农索隆:充分发挥学生的价值。 校长银行卡扣款100w,都以为是自动付款没关
你找实习最大的坎坷是什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务