资讯专栏INFORMATION COLUMN

JavaScript 专项练习:函数篇(一)

longmon / 1864人阅读

摘要:引言在学习的过程中看了不少书,但却很少有专项练习,因此开这样一个专题,希望能在练习中复习巩固所学的知识函数篇一本篇主要考察编写函数的技能和基本知识,同时也是对标准库函数的练习。

引言

在学习 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"));
})();

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79050.html

相关文章

  • 右脑编程--左脑是基础(3)之逻辑

    摘要:结果显示,代码写的好的,用中文表述起来也是清晰明了代码写的差的,基本上无法用中文来表述自己的思维意图。注意这部分全部用中文来练习,这样,就没人有借口来为自己的逻辑问题找理由了。 在上一篇中,我讲到了英语的重要性,也提到了一个概念代码即注释。事实上的确如此,一个编写良好的代码,本身就是一个注释,或者说是一个优秀程序员的思想结晶。无需另外再增加注释了。我们在阅读一篇优秀的文章时,通常都被文...

    whlong 评论0 收藏0
  • 右脑编程--左脑是基础(3)之逻辑

    摘要:结果显示,代码写的好的,用中文表述起来也是清晰明了代码写的差的,基本上无法用中文来表述自己的思维意图。注意这部分全部用中文来练习,这样,就没人有借口来为自己的逻辑问题找理由了。 在上一篇中,我讲到了英语的重要性,也提到了一个概念代码即注释。事实上的确如此,一个编写良好的代码,本身就是一个注释,或者说是一个优秀程序员的思想结晶。无需另外再增加注释了。我们在阅读一篇优秀的文章时,通常都被文...

    dreamtecher 评论0 收藏0
  • 右脑编程--左脑是基础(3)之逻辑

    摘要:结果显示,代码写的好的,用中文表述起来也是清晰明了代码写的差的,基本上无法用中文来表述自己的思维意图。注意这部分全部用中文来练习,这样,就没人有借口来为自己的逻辑问题找理由了。 在上一篇中,我讲到了英语的重要性,也提到了一个概念代码即注释。事实上的确如此,一个编写良好的代码,本身就是一个注释,或者说是一个优秀程序员的思想结晶。无需另外再增加注释了。我们在阅读一篇优秀的文章时,通常都被文...

    z2xy 评论0 收藏0
  • 右脑编程--左脑是基础(3)之逻辑

    摘要:结果显示,代码写的好的,用中文表述起来也是清晰明了代码写的差的,基本上无法用中文来表述自己的思维意图。注意这部分全部用中文来练习,这样,就没人有借口来为自己的逻辑问题找理由了。 在上一篇中,我讲到了英语的重要性,也提到了一个概念代码即注释。事实上的确如此,一个编写良好的代码,本身就是一个注释,或者说是一个优秀程序员的思想结晶。无需另外再增加注释了。我们在阅读一篇优秀的文章时,通常都被文...

    sourcenode 评论0 收藏0
  • 右脑编程--左脑是基础(3)之逻辑

    摘要:结果显示,代码写的好的,用中文表述起来也是清晰明了代码写的差的,基本上无法用中文来表述自己的思维意图。注意这部分全部用中文来练习,这样,就没人有借口来为自己的逻辑问题找理由了。 在上一篇中,我讲到了英语的重要性,也提到了一个概念代码即注释。事实上的确如此,一个编写良好的代码,本身就是一个注释,或者说是一个优秀程序员的思想结晶。无需另外再增加注释了。我们在阅读一篇优秀的文章时,通常都被文...

    VPointer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<