每日一题

二进制转换

https://www.nowcoder.com/practice/7b74386695cc48349af37196f45e62a8?tpId=6&tags=&title=&diffculty=0&judgeStatus=0&rp=1

data:2021-01-05

柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。简单理解题目意思,就是指,我们将预定义的函数的参数逐一传入到curryIt中,当参数全部传入之后,就执行预定义函数。于是,我们首先要获得预定义函数的参数个数fn.length,然后声明一个空数组去存放这些参数。返回一个匿名函数接收参数并执行,当参数个数小于fn.length,则再次返回该匿名函数,继续接收参数并执行,直至参数个数等于fn.length。最后,调用apply执行预定义函数。
function curryIt(fn) {
     var n = fn.length;
     var args = [];
     return function(arg){
         args.push(arg);
         if(args.length < n){
            return arguments.callee;
         }else return fn.apply("",args);
     }
 } 

parseInt()方法转换进制:
给定二进制字符串,将其换算成对应的十进制数字

function base10(str) {
    return parseInt(str,2);
}

toString()方法 将给定值转化为2进制

  • 将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位
    function convertToBinary(num) {
     var s = num.toString(2);
     var l = s.length;
     if(l<8){
         var s1 = "00000000";
         var s2 = s1.slice(0,8-l);
         s = s2+s;
     }
     return s;
    }
全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务