之前偶然看到了w3c上的編程挑戰題,就像拿來試試手,先做的是初級腳本算法,總體不難,如果有更好的方法,希望能一起交流!
1、翻轉字符串
先把字符串轉化成數組,再借助數組的reverse方法翻轉數組順序,最后把數組轉化成字符串。
function reverseString(str) { var str2 = ''; for(var i=str.length-1;i>=0;i--){ str2 += str[i]; } return str2; } function reverseString(str){ var strArray = str.split(''); strArray.reverse(); str = strArray.join(''); return str }2、計算一個整數的階乘
如果用字母n來代表一個整數,階乘代表著所有小于或等于n的整數的乘積。
function factorialize(num) { var sum = 1; for(var i=num;i>0;i--){ sum *= i; } console.log(sum); return sum; } function factorialize(num) { if(num ==1){ return 1; }else{ return arguments.callee(num-1)*num; } }3、回文算法
如果給定的字符串是回文,返回true,反之,返回false。
如果一個字符串忽略標點符號、大小寫和空格,正著讀和反著讀一模一樣,那么這個字符串就是palindrome(回文)。
注意你需要去掉字符串多余的標點符號和空格,然后把字符串轉化成小寫來驗證此字符串是否為回文。
function palindrome(str) { var arr = []; str = str.toLowerCase(); for(var i=0;i<str.length;i++){ // 在小寫字母的Unicode的范圍內或者在數字的Unicode范圍內 if((str.charCodeAt(i)<=122 && str.charCodeAt(i)>=97) || (str.charCodeAt(i)<=57 && str.charCodeAt(i)>=48)){ arr.push(str[i]); } } //只需要判斷數組一半的次數就全部比較完了,不必再浪費時間了 for(var i=0;i<Math.ceil(arr.length/2);i++) { if(arr[i] !== arr[arr.length-i-1]){ return false; } } return true; } // 需要手動添加特殊字符 function palindrome(str){ var str1,str2; str = str.toLowerCase(); str = str.replace(/[/ |/~|/`|/!|/@|/#|/$|/%|/^|/&|/*|/(|/)|/-|/_|/+|/=|/||//|/[|/]|/{|/}|/;|/:|/"|/'|/,|/<|/.|/>|//|/?]/g,""); str1 = str.split(''); str1.reverse(); str2 = str1.join(''); if(str === str2){ return true }else{ return false; } }4、尋找最長的單詞算法
找到提供的句子中最長的單詞,并計算它的長度。
函數的返回值應該是一個數字。
// 利用charCodeAt()方法判斷是不是一個單詞,并記錄單詞長度,最后獲得最長的單詞長度 function findLongestWord(str) { var num = 0, max = 0; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) !== 32) { num++; } else { // 注意:如果最后一個字母不是空格,不會比較最后一個單詞的長度 max = num > max ? num : max; num = 0; } } // 比較最后一個單詞的長度 max = num > max ? num : max; return max; } // 利用split()方法將字符串分成每個單詞組成的數組,取得其中最長的長度 function findLongestWord(str){ var max = 0; var arr = str.split(' '); for(var i=0;i<arr.length;i++){ max = arr[i].length>max?arr[i].length:max; } return max; }
新聞熱點
疑難解答
圖片精選