FCC例题

 

1.Factorialize a Number 
计算一个整数的阶乘
function factorialize(num) {
  var lem=1;
  for(var i=1;i<=num;i++){
    lem*=i;
  }
  return lem;
}
factorialize(5);

 

2.Check for Palindromes
检查字符串是否是回文 
function palindrome(str) {
  var oldS=str.replace(/[\W_]/g,'').toLowerCase(); //[\W_]将非单词或_去除
  var newS=oldS.split('').reverse().join('');
  return oldS===newS;
}
palindrome("A man, a plan, a canal. Panama");
3.Find the Longest Word in a String
找到句子中最长单词,并计算其长度
function findLongestWord(str) {
  return Math.max(...str.split(' ').map(s=>s.length)); //.map将数组中每个元素替换为其长度并利用max...获取数组最大值(ES6)
}
findLongestWord("The quick brown fox jumped over the lazy dog");

 

4.Title Case a Sentence
字符串的每个单词首字母都大写,其余部分小写。
function titleCase(str) {
  var newStr=str.toLowerCase().split(' ');         
  var arr=[];
  for(var i=0;i<newStr.length;i++){
   arr.push(newStr[i].slice(0,1).toUpperCase()+newStr[i].slice(1)); 
  } 
  return arr.join(' ');        
}

titleCase("I'm a little tea pot");
5.Confirm the Ending
检查一个字符串(str)是否以指定的字符串(target)结尾。
function confirmEnding(str, target) {
return str.substr(-target.length)==target; } confirmEnding("Bastian", "n");
6.Chunky Monkey
把一个数组arr按照指定的数组大小size分割成若干个数组块。
function chunk(arr, size) {
  var newArr=[];
  for(var i=0;i<arr.length;i+=size){
    newArr.push(arr.slice(i,i+size));
  }
  return newArr;
}
chunk(["a", "b", "c", "d","s"], 2);
7.Mutations
判断数组第一个字符串元素包含了第二个字符串元素的所有字符。
function mutation(arr) {
  var newArr1=arr[0].toLowerCase();
  var newArr2=arr[1].toLowerCase();
  for(var i=0;i<newArr2.length;i++){
    if(newArr1.indexOf(newArr2[i])==-1){
      return false;
    }
  }
  return true;
}
mutation(["Alien", "line"]);

 

8.Falsy Bouncer
删除数组中的所有假值。
function bouncer(arr) {

return arr.filter(Boolean); } bouncer([1, null, NaN, 2, undefined]);

 

9.Seek and Destroy
实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。
function destroyer(arr) {
  var arg=[];
  for(var i=1;i<arguments.length;i++){    //第一个参数是arr数组,其他参数并未传入 所以用arguments对象将其他参数提取出来,
    arg.push(arguments[i]);         //再利用filter过滤掉匹配的数值 剩余的则是想要的数值!                              
  }
  return arr.filter(function(val){
    return arg.indexOf(val)==-1;
  });
}
destroyer(["tree", "hamburger", 53], "tree", 53);

 

10.Caesars Cipher
移位密码 ROT13
function rot13(str){ 
    var arr=[];
    var newA=0;
    for (var i = 0; i < str.length; i++) { //将字符以编码单元显示 然后进行移位 再返回字符
        arr.push(str[i].charCodeAt());
    }
    for (var i = 0; i < arr.length; i++) {
        if (arr[i]>=65&&arr[i]<=77) {
            arr[i]=arr[i]+13;
        }else if(arr[i]>77){
            arr[i]=arr[i]+13-26;
        }
        arr[i]=String.fromCharCode(arr[i]);
    }
    return arr.join('');
}
rot13("SERR PBQR PNZC");

 

转载于:https://www.cnblogs.com/renshengruge/p/6529982.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值