[ JS基础 ] JS基础不好!只能靠它了! (1)

Duang!Duang!Duang! 我不是干货,我是干粮! 推荐个好东西给大家,一个网站:codewars 这网站是干什么的呢?
1.赚钱的(当然不是我们的)!
2.通过做一些编程题可以大大提高你的 Javascript ! 当然也有其他语言:Java C# Ruby …. 网站很强大,界面设计的很不错,就是外网访问起来不牛畅,但是国内也还没有这么一个网站,大家慢慢体会!
4.网站有很多的题目,难度系数分等级,如果你能解答3级及以下的的题目就算JS靠谱的了!
5.Codewars的奖励系统激励程序员们像打游戏升级一样地做习题(还是打游戏爽吧)。

来看看我刚才做的一道JS编程题:

《[ JS基础 ] JS基础不好!只能靠它了! (1)》

题目的意思:编写一个maskiy函数,将长度>4的字符串保留最后四位,其余的用‘#’代替。长度<4则输出原始值。

好,我很菜,这是我写的:

    function maskify(cc) {

    if(cc.length > 4){
        var newstr = '';
        var str = cc.slice(0,cc.length - 4);
        for(var i = 0 ,lng = str.length;i<lng;i++){
            var word = str.charAt(i);
            newstr +=word.replace(word,'#');;
        }
        var lastfour = cc.slice(-4);
        return newstr+lastfour;
    }else{
        return cc;
    }

}

o(╯□╰)o 虽然能够实现,但怎么看都觉得菜成狗!当然这也是一种方案。你想一下,有很多人提交,每个人很可能都不同,那么这题就有那么多解答方案,我们是不是可以学到很多!

ok,来看看其他人的解答:

   1.function maskify(cc) {
       return cc.slice(0, -4).replace(/./g, '#') + cc.slice(-4);
     }
     我滴天,和我得比起来..这...要吐血了!我得赶紧去补补正则了!
  2.function maskify(cc) {
      return cc.split('').map(function(x,i){
          return i<cc.length-4?'#':cc[i];
      }).join('');
     }
      这个也不错哦!
  3.function maskify(cc) {
      return cc.replace(/.(?=.{4})/g,"#");
    }
  4.function maskify(cc) {
      return (cc.length>2?new Array(cc.length-3).join('#'):'')+cc.substr(-4);
    }

还有很多答案,大家去试试吧,睡前来一题,精神倍爽!啊,不用睡觉了 `(∩_∩)′。。。

附上一些链接:
CodeWars 上面的奇葩问题和回答(一)
CodeWars 上面的奇葩问题和回答(二)

    原文作者:kraaas
    原文地址: https://segmentfault.com/a/1190000002610861
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞