摘要:引言在學習的過程中看了不少書,但卻很少有專項練習,因此開這樣一個專題,希望能在練習中復習鞏固所學的知識函數篇一本篇主要考察編寫函數的技能和基本知識,同時也是對標準庫函數的練習。
引言
在學習 JavaScript 的過程中看了不少書,但卻很少有專項練習,因此開這樣一個專題,希望能在練習中復習鞏固所學的知識~ :)
函數篇(一)本篇主要考察編寫函數的技能和基本知識,同時也是對 JavaScript 標準庫函數的練習。
1. 寫一個函數用來反轉數字
reverseNumber(12345); // 54321
2. 寫一個函數來檢測傳入的字符串是否為回文
isPalindrome("hello"); // false isPalindrome("madam"); // true
3. 寫一個函數對傳入的字符串輸出所有子字符串組合(注意去重)
substrings("dog"); // ["d", "do", "dog", "o", "og", "g"]
4. 寫一個函數對傳入的字符串重新按字母排序
reorderStr("webmaster"); // abeemrstw
5. 寫一個函數對傳入的字符串中每個單詞的首字母大寫
upperWords("the quick brown fox"); // The Quick Brown Fox
6. 寫一個函數找出傳入的字符串中最長的單詞
findLongest("Web Development Tutorial"); // Development答案
以下給出我的解法,期待能有更好的答案。
// 1. 寫一個函數用來反轉數字 (function(){ "use strict"; function reverseNumber(num) { if(typeof num !== "number") { throw "Pls input a number!"; } var result = num.toString().split("").reverse().join(""); return +result; } console.log(reverseNumber(12345)); })();
// 2. 寫一個函數來檢測傳入的字符串是否為回文 (function(){ "use strict"; function isPalindrome(str) { if(typeof str !== "string") { throw "Pls input a string!"; } var tmp = str.split("").reverse().join(""); return tmp === str; } console.log(isPalindrome("hello")); console.log(isPalindrome("madam")); })();
// 3. 寫一個函數對傳入的字符串輸出所有子字符串組合 (function(){ "use strict"; function substrings(str) { if(typeof str !== "string") { throw "Pls input a string!"; } var result = []; function next(idx) { var i, n = str.length - idx; for(i=1; i<=n; i++) { add(str.substr(idx, i)); } if(idx < str.length){ next(idx+1); } } function add(item) { if(result.indexOf(item)<0) { result.push(item); } } next(0); return result; } console.log(substrings("dog")); })();
// 4. 寫一個函數對傳入的字符串重新按字母排序 (function(){ "use strict"; function reorderStr(str) { if(typeof str !== "string") { throw "Pls input a string!"; } return str.split("").sort().join(""); } console.log(reorderStr("webmaster")); })();
// 5. 寫一個函數對傳入的字符串中每個單詞的首字母大寫 (function(){ "use strict"; function upperWords(str) { if(typeof str !== "string") { throw "Pls input a string!"; } return str.split(" ").map(upperFirstLetter).join(" "); function upperFirstLetter(str) { return str.charAt(0).toUpperCase().concat(str.substr(1)); } } console.log(upperWords("the quick brown fox")); })();
// 6. 寫一個函數找出傳入的字符串中最長的單詞 (function(){ "use strict"; function findLongest(str) { if(typeof str !== "string") { throw "Pls input a string!"; } var items = str.split(" "); return getMax(items); function getMax(arr) { var i, max = 0, n=arr.length; for(i = 0; i < n; i++) { if(arr[i].length > arr[max].length) { max = i; } } return arr[max]; } } console.log(findLongest("Web Development Tutorial")); })();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79050.html
摘要:結果顯示,代碼寫的好的,用中文表述起來也是清晰明了代碼寫的差的,基本上無法用中文來表述自己的思維意圖。注意這部分全部用中文來練習,這樣,就沒人有借口來為自己的邏輯問題找理由了。 在上一篇中,我講到了英語的重要性,也提到了一個概念代碼即注釋。事實上的確如此,一個編寫良好的代碼,本身就是一個注釋,或者說是一個優秀程序員的思想結晶。無需另外再增加注釋了。我們在閱讀一篇優秀的文章時,通常都被文...
摘要:結果顯示,代碼寫的好的,用中文表述起來也是清晰明了代碼寫的差的,基本上無法用中文來表述自己的思維意圖。注意這部分全部用中文來練習,這樣,就沒人有借口來為自己的邏輯問題找理由了。 在上一篇中,我講到了英語的重要性,也提到了一個概念代碼即注釋。事實上的確如此,一個編寫良好的代碼,本身就是一個注釋,或者說是一個優秀程序員的思想結晶。無需另外再增加注釋了。我們在閱讀一篇優秀的文章時,通常都被文...
摘要:結果顯示,代碼寫的好的,用中文表述起來也是清晰明了代碼寫的差的,基本上無法用中文來表述自己的思維意圖。注意這部分全部用中文來練習,這樣,就沒人有借口來為自己的邏輯問題找理由了。 在上一篇中,我講到了英語的重要性,也提到了一個概念代碼即注釋。事實上的確如此,一個編寫良好的代碼,本身就是一個注釋,或者說是一個優秀程序員的思想結晶。無需另外再增加注釋了。我們在閱讀一篇優秀的文章時,通常都被文...
摘要:結果顯示,代碼寫的好的,用中文表述起來也是清晰明了代碼寫的差的,基本上無法用中文來表述自己的思維意圖。注意這部分全部用中文來練習,這樣,就沒人有借口來為自己的邏輯問題找理由了。 在上一篇中,我講到了英語的重要性,也提到了一個概念代碼即注釋。事實上的確如此,一個編寫良好的代碼,本身就是一個注釋,或者說是一個優秀程序員的思想結晶。無需另外再增加注釋了。我們在閱讀一篇優秀的文章時,通常都被文...
摘要:結果顯示,代碼寫的好的,用中文表述起來也是清晰明了代碼寫的差的,基本上無法用中文來表述自己的思維意圖。注意這部分全部用中文來練習,這樣,就沒人有借口來為自己的邏輯問題找理由了。 在上一篇中,我講到了英語的重要性,也提到了一個概念代碼即注釋。事實上的確如此,一個編寫良好的代碼,本身就是一個注釋,或者說是一個優秀程序員的思想結晶。無需另外再增加注釋了。我們在閱讀一篇優秀的文章時,通常都被文...
閱讀 3609·2021-11-15 11:37
閱讀 2974·2021-11-12 10:36
閱讀 4403·2021-09-22 15:51
閱讀 2381·2021-08-27 16:18
閱讀 882·2019-08-30 15:44
閱讀 2164·2019-08-30 10:58
閱讀 1769·2019-08-29 17:18
閱讀 3269·2019-08-28 18:25