摘要:引言在學(xué)習(xí)的過(guò)程中看了不少書(shū),但卻很少有專(zhuān)項(xiàng)練習(xí),因此開(kāi)這樣一個(gè)專(zhuān)題,希望能在練習(xí)中復(fù)習(xí)鞏固所學(xué)的知識(shí)函數(shù)篇一本篇主要考察編寫(xiě)函數(shù)的技能和基本知識(shí),同時(shí)也是對(duì)標(biāo)準(zhǔn)庫(kù)函數(shù)的練習(xí)。
引言
在學(xué)習(xí) JavaScript 的過(guò)程中看了不少書(shū),但卻很少有專(zhuān)項(xiàng)練習(xí),因此開(kāi)這樣一個(gè)專(zhuān)題,希望能在練習(xí)中復(fù)習(xí)鞏固所學(xué)的知識(shí)~ :)
函數(shù)篇(一)本篇主要考察編寫(xiě)函數(shù)的技能和基本知識(shí),同時(shí)也是對(duì) JavaScript 標(biāo)準(zhǔn)庫(kù)函數(shù)的練習(xí)。
1. 寫(xiě)一個(gè)函數(shù)用來(lái)反轉(zhuǎn)數(shù)字
reverseNumber(12345); // 54321
2. 寫(xiě)一個(gè)函數(shù)來(lái)檢測(cè)傳入的字符串是否為回文
isPalindrome("hello"); // false isPalindrome("madam"); // true
3. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串輸出所有子字符串組合(注意去重)
substrings("dog"); // ["d", "do", "dog", "o", "og", "g"]
4. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串重新按字母排序
reorderStr("webmaster"); // abeemrstw
5. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串中每個(gè)單詞的首字母大寫(xiě)
upperWords("the quick brown fox"); // The Quick Brown Fox
6. 寫(xiě)一個(gè)函數(shù)找出傳入的字符串中最長(zhǎng)的單詞
findLongest("Web Development Tutorial"); // Development答案
以下給出我的解法,期待能有更好的答案。
// 1. 寫(xiě)一個(gè)函數(shù)用來(lái)反轉(zhuǎn)數(shù)字 (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. 寫(xiě)一個(gè)函數(shù)來(lái)檢測(cè)傳入的字符串是否為回文 (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. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串輸出所有子字符串組合 (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. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串重新按字母排序 (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. 寫(xiě)一個(gè)函數(shù)對(duì)傳入的字符串中每個(gè)單詞的首字母大寫(xiě) (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. 寫(xiě)一個(gè)函數(shù)找出傳入的字符串中最長(zhǎng)的單詞 (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")); })();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/79050.html
摘要:結(jié)果顯示,代碼寫(xiě)的好的,用中文表述起來(lái)也是清晰明了代碼寫(xiě)的差的,基本上無(wú)法用中文來(lái)表述自己的思維意圖。注意這部分全部用中文來(lái)練習(xí),這樣,就沒(méi)人有借口來(lái)為自己的邏輯問(wèn)題找理由了。 在上一篇中,我講到了英語(yǔ)的重要性,也提到了一個(gè)概念代碼即注釋。事實(shí)上的確如此,一個(gè)編寫(xiě)良好的代碼,本身就是一個(gè)注釋?zhuān)蛘哒f(shuō)是一個(gè)優(yōu)秀程序員的思想結(jié)晶。無(wú)需另外再增加注釋了。我們?cè)陂喿x一篇優(yōu)秀的文章時(shí),通常都被文...
摘要:結(jié)果顯示,代碼寫(xiě)的好的,用中文表述起來(lái)也是清晰明了代碼寫(xiě)的差的,基本上無(wú)法用中文來(lái)表述自己的思維意圖。注意這部分全部用中文來(lái)練習(xí),這樣,就沒(méi)人有借口來(lái)為自己的邏輯問(wèn)題找理由了。 在上一篇中,我講到了英語(yǔ)的重要性,也提到了一個(gè)概念代碼即注釋。事實(shí)上的確如此,一個(gè)編寫(xiě)良好的代碼,本身就是一個(gè)注釋?zhuān)蛘哒f(shuō)是一個(gè)優(yōu)秀程序員的思想結(jié)晶。無(wú)需另外再增加注釋了。我們?cè)陂喿x一篇優(yōu)秀的文章時(shí),通常都被文...
摘要:結(jié)果顯示,代碼寫(xiě)的好的,用中文表述起來(lái)也是清晰明了代碼寫(xiě)的差的,基本上無(wú)法用中文來(lái)表述自己的思維意圖。注意這部分全部用中文來(lái)練習(xí),這樣,就沒(méi)人有借口來(lái)為自己的邏輯問(wèn)題找理由了。 在上一篇中,我講到了英語(yǔ)的重要性,也提到了一個(gè)概念代碼即注釋。事實(shí)上的確如此,一個(gè)編寫(xiě)良好的代碼,本身就是一個(gè)注釋?zhuān)蛘哒f(shuō)是一個(gè)優(yōu)秀程序員的思想結(jié)晶。無(wú)需另外再增加注釋了。我們?cè)陂喿x一篇優(yōu)秀的文章時(shí),通常都被文...
摘要:結(jié)果顯示,代碼寫(xiě)的好的,用中文表述起來(lái)也是清晰明了代碼寫(xiě)的差的,基本上無(wú)法用中文來(lái)表述自己的思維意圖。注意這部分全部用中文來(lái)練習(xí),這樣,就沒(méi)人有借口來(lái)為自己的邏輯問(wèn)題找理由了。 在上一篇中,我講到了英語(yǔ)的重要性,也提到了一個(gè)概念代碼即注釋。事實(shí)上的確如此,一個(gè)編寫(xiě)良好的代碼,本身就是一個(gè)注釋?zhuān)蛘哒f(shuō)是一個(gè)優(yōu)秀程序員的思想結(jié)晶。無(wú)需另外再增加注釋了。我們?cè)陂喿x一篇優(yōu)秀的文章時(shí),通常都被文...
摘要:結(jié)果顯示,代碼寫(xiě)的好的,用中文表述起來(lái)也是清晰明了代碼寫(xiě)的差的,基本上無(wú)法用中文來(lái)表述自己的思維意圖。注意這部分全部用中文來(lái)練習(xí),這樣,就沒(méi)人有借口來(lái)為自己的邏輯問(wèn)題找理由了。 在上一篇中,我講到了英語(yǔ)的重要性,也提到了一個(gè)概念代碼即注釋。事實(shí)上的確如此,一個(gè)編寫(xiě)良好的代碼,本身就是一個(gè)注釋?zhuān)蛘哒f(shuō)是一個(gè)優(yōu)秀程序員的思想結(jié)晶。無(wú)需另外再增加注釋了。我們?cè)陂喿x一篇優(yōu)秀的文章時(shí),通常都被文...
閱讀 3763·2021-11-15 11:37
閱讀 3050·2021-11-12 10:36
閱讀 4591·2021-09-22 15:51
閱讀 2478·2021-08-27 16:18
閱讀 956·2019-08-30 15:44
閱讀 2219·2019-08-30 10:58
閱讀 1834·2019-08-29 17:18
閱讀 3346·2019-08-28 18:25