js一些数字方面的练习

Posted coderwhytop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js一些数字方面的练习相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>js小练习</title>
</head>

<body>
  <script>
    //有时间自己写 数组的倒置转换方法;split, jion,记住js的精度丢失等问题

    // 输入正整数返回他们的倒叙,比如123 => 321
    function re(abc) {
      abc += \'\'
      var arr = abc.split(\'\');
      abc = (arr.reverse()).join(\'\');
      return abc
    }
    var j = re(12345);
    console.log(j);


    // 求目标值内逢7输出的所有数字和是7的倍数的所有数字
    function seven(target) {
      var arr = [];
      for (let i = 0; i < target; i++) {

        if (i % 7 == 0 || i % 10 == 7) {
          arr.push(i)
        }
      }
      return arr;
    }
    var j = seven(100);
    console.log(j);

    //求num的n次幂,n可以输入
    // 2的3次幂是8
    function power(num, n) {
      var a = num;
      for (var i = 1; i < n; i++) {
        num = num * a
      }
      return num;
    }
    console.log(power(3, 2));

    // 求n的阶层
    function rank(n) {
      if (n <= 1) {
        return 1
      }
      return n * rank(n - 1)

    }
    console.log(rank(3), \'阶乘\');


    function rank(num) {
      var result = 1;
      while (num) {
        result *= num;
        num--;
      }
      return result;
    }
    console.log(rank(3), \'阶乘2\');



    // 输入a b c返回出最大的数

    // 不推荐写法,没有兼容性  特别是360和FireFox
    function maxNum(a, b, c) {
      // 不是因为arguments是类数组对象才不能使用sort方法,是因为sort兼容太差,所以js选择放弃arguments的sort API
      var arr = [];
      for (var i = 0; i < arguments.length; i++) {
        arr.push(arguments[i])
      }
      return arr.sort()[arr.length - 1]
    }


    // 这里关键是infinity无限小,没有数不比无限小大
    function arrMaxNum(a, b, c) {
      var arr = [a, b, c];
      var maxNum = -Infinity, index = -1;
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] > maxNum) {
          maxNum = arr[i];
          index = i;
        }
      };
      return { "maxNum": maxNum, "index": index };
    }
    // console.log(maxNum(2, 4, 3));
    console.log(arrMaxNum(2, 4, 3));
    // 打印一百以内的质数,就是只被1和它自身整除的数

    function prime(n) {
      // 小知识点:质数必须是大于1的
      var arr = []
      // 7 = 1 * 7
      // 7 / 1 == 7
      for (var i = 1; i < n; i++) {

        if (i % 2 != 0 && i % 3 != 0 && i % 5 != 0 && i % 9 != 0) {
          arr.push(i)
        }
      }
      return arr;
    }

    console.log(prime(100));



    function getMax(a, b, c) {
      var max = -Infinity, index = -1;
      var arr = [a, b, c];
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] > max) {
          max = arr[i]; index = i;
        }
      }
      return { max, index }
    }

    console.log(getMax(10, 20, 15));

  </script>
</body>

</html>

 

以上是关于js一些数字方面的练习的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

JavaScript笔试题(js高级代码片段)

Java 控制台输入数字 输出乘法表(代码练习)

js常用代码片段

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享