函数练习题

1. 编写一个函数,接受两个参数,返回它们的和。

  ```javascript

  function add(a, b) {

    return a + b;

  }


  console.log(add(1, 2)); // 输出3

  ```

2. 编写一个函数,接受一个数字作为参数,返回该数字的平方值。

  ```javascript

  function square(num) {

    return num * num;

  }


  console.log(square(2)); // 输出4

  ```

3. 编写一个函数,接受一个数字作为参数,返回该数字的阶乘值。

  ```javascript

  function factorial(num) {

    if (num <= 1) {

      return 1;

    } else {

      return num * factorial(num - 1);

    }

  }


  console.log(factorial(5)); // 输出120

  ```

4. 编写一个函数,接受一个字符串作为参数,返回该字符串中所有单词的首字母大写的字符串。

  ```javascript

  function capitalizeWords(str) {

    var words = str.split(" ");

    for (var i = 0; i < words.length; i++) {

      words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);

    }

    return words.join(" ");

  }


  console.log(capitalizeWords("hello world")); // 输出"Hello World"

  ```

5. 编写一个函数,接受一个数组作为参数,返回该数组中所有数字的平均值。

  ```javascript

  function average(nums) {

    var sum = 0;

    for (var i = 0; i < nums.length; i++) {

      sum += nums[i];

    }

    return sum / nums.length;

  }


  console.log(average([1, 2, 3, 4, 5])); // 输出3

  ```


6. 编写一个函数,接受一个字符串作为参数,返回该字符串中所有字母的出现次数。

  ```javascript

  function countChars(str) {

    var result = {};

    for (var i = 0; i < str.length; i++) {

      var char = str.charAt(i);

      if (result[char]) {

        result[char]++;

      } else {

        result[char] = 1;

      }

    }

    return result;

  }


  console.log(countChars("hello world")); // 输出{h: 1, e: 1, l: 3, o: 2, " ": 1, w: 1, r: 1, d: 1}

  ```

7. 编写一个函数,接受一个数字作为参数,返回该数字的二进制表示。

  ```javascript

  function toBinary(num) {

    return (num >>> 0).toString(2);

  }


  console.log(toBinary(10)); // 输出"1010"

  ```

8. 编写一个函数,接受一个数组作为参数,返回该数组中的最大值和最小值。

  ```javascript

  function minMax(nums) {

    var min = nums[0], max = nums[0];

    for (var i = 1; i < nums.length; i++) {

      if (nums[i] < min) {

        min = nums[i];

      }

      if (nums[i] > max) {

        max = nums[i];

      }

    }

    return [min, max];

  }


  console.log(minMax([1, 2, 3, 4, 5])); // 输出[1, 5]

  ```

9. 编写一个函数,接受一个字符串和一个数字作为参数,返回将该字符串进行加密后得到的新字符串。加密规则为将字符串中每个字符按照ASCII码值加上给定数字后转换为字符,并将新字符串返回。

  ```javascript

  function encrypt(str, num) {

    var result = "";

    for (var i = 0; i < str.length; i++) {

      var code = str.charCodeAt(i) + num;

      result += String.fromCharCode(code);

    }

    return result;

  }


  console.log(encrypt("hello world", 1)); // 输出"ifmmp!xpsme"

  ```

10. 编写一个函数,接受两个数组作为参数,返回这两个数组的并集(即包含这两个数组中所有不重复的元素的新数组)。

  ```javascript

  function union(arr1, arr2) {

    var result = [];

    var map = {};

    for (var i = 0; i < arr1.length; i++) {

      if (!map[arr1[i]]) {

        result.push(arr1[i]);

        map[arr1[i]] = true;

      }

    }

    for (var j = 0; j < arr2.length; j++) {

      if (!map[arr2[j]]) {

        result.push(arr2[j]);

        map[arr2[j]] = true;

      }

    }

    return result;

  }


  console.log(union([1, 2, 3], [2, 3, 4])); // 输出[1, 2, 3, 4]

  ```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容