1.Reverse a String:翻转字符串

先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。结果必须的得到一个字符串。

资源:Global String Object,String.split(),Array.reverse(),Array.join()。

方法:

  function reverseString(str) {

    var strToArray = str.split('');

    var reverseArray = strToArray.reverse();

    str = reverseArray.join('');

    return str; 

 }

 

2.Factorialize a Number:计算一个整数的阶乘

如果用字母n来代表一个整数,阶乘所代表的是小于等于n的整数的乘积。阶乘通常简写成n!。

方法一:利用while循环

function factorial(num) {

  var result = 1;

  while(num) {

  result *= num;

  num--;

  }

  return result;

}

 

方法二: 利用函数递归

function factorial(num) {

  if(num<=0) {

    return 1;

  }

  else {

    return num*argument.callee(num-1);

  }

}

 

方法三: 利用条件运算符

function factorial(num) {

  return (num<=0)?1:factorial(num-1);

}

 

3.Check for Palindromes: 回文算法

如果给定的字符串是回文,返回true,否则,返回false。

如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome回文。

资源: String.replace(),String.toLowerCase()。

思路:1.用replace()去掉字符串中的标点符号,空格。

     2.将字符串全部转变为小写toLowerCase()。

   3.用reverse()判断回文,中间需要一个中间变量用于保存原字符串。

方法:   function palindrome(str) {

      str = str.replace(/[\|\~|\'|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=...|\?]/g,"");

      //正则表达式中涉及到的标点符号可以在键盘中找到

      str = str.toLowerCase();

      var temp = str.split('').reverse().join('');

      return (temp == str)?true:false;

}

 

4. Find the longest word in a String: 查找字符串中最长的一个单词

找到提供的句子中最长的单词,并计算出它的长度。

资源: String.split(),String.length()。

思路:1.将字符串转化为数组对象split()。

     2.得到数组中的每一个元素的长度。

         3.比较2中每个元素的长度。找到最大值的那个元素。

   4.将该元素输出,转化成字符串,计算其长度,并最终输出。

方法:  function findLongestWord(str) {

      var Array = str.split('');

      var longest = 0;

      for(var i=0;i<Array.length;i++) {

        if(longest<Array[i].length) {

          longest = Array[i].length;

    }

  }

  return longest;

}

 

5.Title Case a Sentence 首字母大写

确保字符串的每个单词首字母都大写,其余部分都小写。像“the”和“of”这样的连字符同理。

资源:string.split()

思路:1.将字符串转化为数组/先将所有的字符串小写。

         2.将数组中每个元素的第一字字母大写[0],toUpperCase(),substring()。

         3.将数组转化为字符串。

方法: function titleCase(str) { //将数组中每个元素的首字母大写化

    str = str.toLowerCase();

    var Array = str.split('');

    for(var i=0;i<Array.length;i++) {

    Array[i] = Array[i].substring(0,1).toUpperCase() + Array[i].substring(1);

  }

    str = Array.join('');//将数组转化为字符串并返回字符串

    return str;

}

 

6.Return Largest Numbers in Arrays 返回数组中最大的数

右边大数组中包含了4个小数组,分别找到每个小数组的最大值,然后把它们串联起来,形成一个新数组。

提示:可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。

示例:[[4,5,1,3],[13,27,18,26],[32,35,37,39],[1000,1001,857,1]],结果返回[27,5,39,1001]

思路:1.获得大数组的每个元素(小数组)。

         2.对获得的小数组,每个进行排序。//sort()按照字母进行排序

         3.将每个小数组中最大的数取出添加到新的数组中。

         4.返回新数组。

方法:    排序:function sortNumber(a,b) {

        return a-b;

       }

        sort(sortNumber)

         可以实现小数组中数字大小的排序。

        方法二: function LargestOfFour(rank2Array) {

        var newArray = [];

        for(var i=0;i<rank2Array.length;i++) {

          newArray.push(rank2Array[i].slice().sort(function(a,b){

            return a<b;

          })[0]);

        }

          return newArray;

       }

        方法三:function  LargestOfFour(arr){

        var newArr = [];

        for(var i=0;i<arr.length;i++){

          var num = Math.max.apply(null,arr[i]);

          newArr.push(num);  

       }

          return newArr;

      }

 

7. Confirm the Ending

检查一个字符串(str)是否以指定的字符串(target)结尾。如果是,返回true,如果不是,返回false。

资源:string.substr()

思路:1.获得字符串最后一个字符/特定的字符。单个字符串/单个单词:最后一个字符,一句话字符串:最后一个单词。

   判断:a 先将字符串转化为数组 

                  b 如果数组中元素=1,则取最后一个字符。如果数组中元素>1,则取数组最后一个元素。

        2.与特定字符进行比对:相等/相同:true。不等/不同:false。

  特殊情况:“He has to give me a new name” "me"  ------true

  方法:function confirmEnding(str,target) {

      return str.substr(-target.length,target.length) === target;

  }  //换位思考,从target角度思考

  语法:str.substr(start[,length])

    start是一个字符的索引。首字符的索引为0,最后一个字符的索引为字符串的长度减去1。substr从start位置开始提取字符,提取length个字符(或直到字符      串的末尾)。

    如果start值为正值,且大于或等于字符串的长度,则 substr返回一个空字符串。

      如果start值为负值,则substr把它作为从字符串末尾开始的一个字符索引。如果start为负值且abs(start)大于字符串的长度,则substr便用0作为开始提取的    索引。注意使用负的start参数不被Microsoft JScript支持。

posted on 2017-07-05 18:03  晴天牧牧  阅读(213)  评论(0编辑  收藏  举报