【1】Reverse a String
先把字符串轉(zhuǎn)化成數(shù)組拯坟,再借助數(shù)組的reverse方法翻轉(zhuǎn)數(shù)組順序,最后把數(shù)組轉(zhuǎn)化成字符串韭山。
Q1.思路:①'hello'.split(??);→['h','e','l','l','0'] ②Arr.reverse(); ③Arr.join();
A: 'hello'.split(''); 即可得到['h','e','l','l','0']
//第一遍郁季,有問題
function reverseString(str) {
var arrayOfString = str.split();
var newArray = arrayOfString.reverse();
var stringOfArray = newArray.join();
return stringOfArray;
}
reverseString("hello");```
##正解?
function reverseString(str) {
var newStr = str.split("").reverse().join("");
return newStr;
}
reverseString("hello");```
這個可以,Why??
function reverseString(str) {
return str.length ? reverseString(str.substr(1))+str.charAt(0) : "";
}
reverseString("hello");```
【2】Factorialize a Number
>計算一個整數(shù)的階乘
如果用字母n來代表一個整數(shù)钱磅,階乘代表著所有小于或等于n的整數(shù)的乘積梦裂。階乘通常簡寫成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
#循環(huán)執(zhí)行情況
i=1,sum=1\*1
i=2,sum=(1\*1)\*2
i=3,sum=(1\*1\*2)\*3
i=4,sum=(1\*1\*2\*3)\*4
i=5,sum=(1\*1\*2\*3\*4)*5
```
function factorialize(num) {
var sum = 1;
for(var i = 1;i<=num;i++){
sum *= i;
}
return sum;
}
factorialize(5);```
【3】Check for Palindromes
>如果給定的字符串是回文,返回true盖淡,反之年柠,返回false。
如果一個字符串忽略標點符號褪迟、大小寫和空格冗恨,正著讀和反著讀一模一樣,那么這個字符串就是palindrome(回文)牵咙。
注意你需要去掉字符串多余的標點符號和空格派近,然后把字符串轉(zhuǎn)化成小寫來驗證此字符串是否為回文。
函數(shù)參數(shù)的值可以為"racecar"洁桌,"RaceCar"和"race CAR"渴丸。
#?另凌?正則如何匹配標點符號(,和. )谱轨??
```
function palindrome(str) {
//Good luck!
var newStr = str.replace(/(,*)(\.*)(\s*)/gi,'');
if(str === str.reverse()){
return true;
} else {
return false;
}
}
palindrome("eye");```
Q:var re = /[\W_]/gi; i表示忽略大小寫吠谢,為何不行土童??
```
function palindrome(str) {
var re = /[\W_]/g;
var lowRegStr = str.toLowerCase().replace(re,"");
var reverseStr = lowRegStr.split("").reverse().join("");
return reverseStr === lowRegStr;
}
palindrome("eye");```
【4】Find the Longest Word in a String
>找到提供的句子中最長的單詞工坊,并計算它的長度献汗。
函數(shù)的返回值應(yīng)該是一個數(shù)字。
#return max;位置有問題
#函數(shù)執(zhí)行順序王污?罢吃?
```
function findLongestWord(str) {
var arr = str.split(" ");
var max = arr[0].length;
for(var i=0;i<arr.length;i++){
if(max <= arr[i].length){
max = arr[i].length;
}
return max;
}
}
findLongestWord("The quick brown fox jumped over the lazy dog");
```
```
function findLongestWord(str) {
var arr = str.split(" ");
var max = arr[0].length;
for(var i=0;i<arr.length;i++){
if(max <= arr[i].length){
max = arr[i].length;
}
}
return max;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
```