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