亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript 專(zhuān)項(xiàng)練習(xí):函數(shù)篇(一)

longmon / 1925人閱讀

摘要:引言在學(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

相關(guān)文章

  • 右腦編程--左腦是基礎(chǔ)(3)之邏輯

    摘要:結(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í),通常都被文...

    whlong 評(píng)論0 收藏0
  • 右腦編程--左腦是基礎(chǔ)(3)之邏輯

    摘要:結(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í),通常都被文...

    dreamtecher 評(píng)論0 收藏0
  • 右腦編程--左腦是基礎(chǔ)(3)之邏輯

    摘要:結(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í),通常都被文...

    z2xy 評(píng)論0 收藏0
  • 右腦編程--左腦是基礎(chǔ)(3)之邏輯

    摘要:結(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í),通常都被文...

    sourcenode 評(píng)論0 收藏0
  • 右腦編程--左腦是基礎(chǔ)(3)之邏輯

    摘要:結(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í),通常都被文...

    VPointer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<