记录Javascript算法挑战

176 阅读2分钟

Day 1 ——  翻转字符串挑战

       解题思路:将输入数据string转换为数组存入新变量arr,使用reverse()方法颠倒数组中元素的顺序存入变量arrNew,将数组arrNew转换为string输出。

       代码示例:

function reverseString(str){

        var arr = str.plit("");

        var arrNew = arr.reverse();

        str = arrNew.join("");

        return str;}


Day 2 —— 阶乘算法挑战

        解题思路:用递归方法将数值阶乘细分为更小的数值阶乘

        代码示例:

1.      function factorialize(num){

                var result = 1;

                for(var i = 1; i <= num; i ++;){

                        result *= i;}

                 return result;}

2.      function factorialize(num){

             if(num == 0){

                 return 1;

             }else{

                  for(var i = num; i > 1;  i--){

                      num *= (i - 1)

                  }return num;

               }}

Day 3 —— 回文算法挑战

        解题思路:将输入的字符串转换为小写无空格字符串存储入新变量,用reverse方法颠倒字符串进行比较

        代码示例:

        function palindrome(str) { 

            var oldStr = str.toLowerCase().replace(/[^a-zA-Z0-9]/g,''); 

            var newStr = oldStr.split('').reverse().join(''); 

            return oldStr==newStr ? true:false; 

}

Day 4 —— 寻找最长的单词算法挑战

        解题思路:将输入的语句转换为数组,初始化新变量maxLength = 0;用for循环遍历数组元素长度,将最大值赋给maxLength,输出。

        代码示例:

        function findLongestWord(str) { 

            var = str.split(" "); var maxLength = 0; 

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

                if(arr[i].length > maxLength){ 

                    maxLength = arr[i].length; } } 

         return maxLength; }