标签:
JavaScript还不是非常熟悉,用已经会的知识来解这些题,估计有些算法会非常笨。
str.split("").reverse().join("");
function factorialize(num) { var n=1; for(var i=num;i>0;i--){ n*=i;} return n; }
暂时想不到能不用添加临时变量的方法。
所谓回文,就是字符串反转后和反转前是一样的,而且忽略除字母数字外的其它字符并且忽略大小写。
因为不懂正则表达式,所以花费了很多时间,看来要好好看一下正则才行。
str.match(/[a-zA-Z0-9]/gi).join("").toLowerCase()==str.match(/[a-zA-Z0-9]/gi).reverse().join("").toLowerCase();
str.split(" ").sort(function(a,b){return b.length-a.length;})[0];
str.split(" ").map(function(arg){return arg.charAt(0).toUpperCase()+arg.substr(1).toLowerCase();}).join(" ");
for (var i=0;i<arr.length;i++){ arr[i]=arr[i].sort(function(a,b){return b-a;}).shift(); }
str.substr(-target.length)==target;
function repeatStringNumTimes(str, num) { var Str=""; while (num>0){ Str+=str; num--; } return Str; }
又一题需要临时变量,后面再回来看看能如何优化。
function truncateString(str, num) { if(str.length>num){ if(num>3){ str=str.slice(0,num-3)+"..."; }else{ str=str.slice(0,num)+"..."; } } return str; }
做到这一题感觉自己的编码和算法都开始真的变糟糕了……
function chunkArrayInGroups(arr, size) { var myarr=[]; for (var i=0;i<arr.length/size;i++){ myarr[i]=arr.slice(i*size,i*size+size); } return myarr; }
感觉我这方法尽瞎扯,虽然能达到效果,但总觉得怪怪,应该轻松地使用arr返回,我却只能使用临时变量myarr返回。
function slasher(arr, howMany) { arr=arr.slice(howMany); return arr; }
然后我试着用这么一句,然后就通过了……通过了、通过了?什么情况,不应该这么容易吧?对着起这么吓人的题目名字吗!
function mutation(arr) { for(var i=0;i<arr[1].length;i++){ if(arr[0].toLowerCase().indexOf(arr[1].substr(i,1).toLowerCase())==-1){ return false; } } return true; }
arr.filter(function(val){if(val){return val;}});
14.
RX学习笔记:FreeCodeCamp的JavaScript基本算法挑战
标签:
原文地址:http://www.cnblogs.com/xlsoft/p/5639308.html