JS基础语法---函数练习part2---10个综合练习(运用:循环/数组/函数)

练习1:求2个数中的最大值

      function getMax(num1, num2) {
        return num1 > num2 ? num1 : num2;
      }
      console.log(getMax(10, 20));
      //console.log(getMax); //函数的代码

 

同:

      function getMax(num1, num2) {
        return num1 > num2 ? num1 : num2;
      }
      var num1 = 10;
      var num2 = 20;
      //函数外面的num和函数的形参num1不是同一个变量
      var result = getMax(num1, num2);
      console.log(result);
      //同:console.log(getMax); //函数的代码

 

练习2:求3个数中的最大值

      function getThreeMax(x, y, z) {
        return x > y ? (x > z ? x : z) : y > z ? y : z;
      }
      console.log(getThreeMax(10, 34, 90));

 

练习3:判断一个数是否是素数(质数)

ps:

1. 只能被1和自身整除,质数是从2开始

2. 用这个数字和这个数字前面的所有的数字整除一次(没有1的,没有自身的)

      function isPrimeNumber(num) {
        for (var i = 2; i < num; i++) {
          if (num % i == 0) {
            //说明有一个数字整除了,就没有必要向后继续整除了,此时就已经验证出不是质数
            return false;
          }
        }
        return true;
      }
      console.log(isPrimeNumber(7839) ? "是质数" : "不是质数");

 

同:

      function isPrimeNumber(num) {
        for (var i = 2; i < num; i++) {
          if (num % i == 0) {
            return false;
          }
        }
        return true;
      }

      var result = isPrimeNumber(3940);
      if (result) {
        console.log("这是数字是质数");
      } else {
        console.log("这是数字不是质数");
      }

 

练习4:求两个数字的差

      function getSub(x, y) {
        return x - y;
      }
      console.log(getSub(384, 2424));

 

练习5:求一组数字中的最大值

      function getArrayMax(array) {
        var max = array[0];
        for (var i = 0; i < array.length; i++) {
          if (max < array[i]) {
            max = array[i];
          }
        }
        return max;
      }

      var max = getArrayMax([30, 20, 10, 49, 59]);
      console.log(max);

      //    var arr=[10,20,30,40,50];
      //    var max=getArrayMax(arr);
      //    console.log(max);
      // var max = getArrayMax([10, 20, 30, 40, 50]); //可以直接把数组传到函数中的
      // console.log(max);
 

 

练习6:求一组数字中的最小值

      function getArrayMax(array) {
        var min = array[0];
        for (var i = 0; i < array.length; i++) {
          if (min > array[i]) {
            min = array[i];
          }
        }
        return min;
      }
      //测试----调用函数并传入一个数组,把数组中的最小值直接显示出来
      console.log(getArrayMax([20, 49, 18, 60, 74, 73]));

 

练习7:求一组数字的和

      function getArraySum(array) {
        var sum = 0;
        for (var i = 0; i < array.length; i++) {
          sum += i;
        }
        return sum;
      }
      console.log(getArraySum([1, 2, 3, 4, 5, 6, 7]));

 

练习8:求一个数组中的最大值和最小值还有和

ps:

1. 给我一个数组,我返回一个数组(最大值,最小值,和)

2. @param array参数是一个数组

3. @returns {*[]}返回值是一个数组,第一个元素值是最大值,第二个元素值是最小值,第三个元素值是和

      function getArrayMaxAndMinAndSum(array) {
        var min = array[0]; //最小值
        var max = array[0]; //最大值
        var sum = 0; //
        for (var i = 0; i < array.length; i++) {
          sum += array[i]; //
          //最大值
          if (max < array[i]) {
            max = array[i];
          } // end if
          //最小值
          if (min > array[i]) {
            min = array[i];
          } //end if
        } //end for
        var array = [max, min, sum];
        return array;
      }
      //测试
      var resultArray = getArrayMaxAndMinAndSum([2, 3, 4, 5, 6, 7, 8, 9, 27]);
      console.log("最大值:" + resultArray[0]);//27
      console.log("最小值:" + resultArray[1]);//2
      console.log("和:" + resultArray[2]);//71

 

 

练习9:通过函数实现数组反转

      function reverseArray(arr) {
        for (var i = 0; i < arr.length / 2; i++) {
          var temp = arr[i];
          arr[i] = arr[arr.length - 1 - i];
          arr[arr.length - 1 - i] = temp;
        }
        return arr;
      }
      console.log(reverseArray([1, 5, 10, 15, 20, 25, 30]));

实现:

 

 

练习10:通过函数实现冒泡排序

      function sortArray(arr) {
        //控制比较的轮数
        for (var i = 0; i < arr.length - 1; i++) {
          //控制每一轮的比较次数
          for (var j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] < arr[j + 1]) {
              var temp = arr[j];
              arr[j] = arr[j + 1];
              arr[j + 1] = temp;
            } //end if
          } //end for
        } //end for
        return arr;
      }
      console.log(sortArray([0, 10, 4, 20, 400, 2, 45]));

 

实现:

 

 

posted @ 2019-11-27 00:40  jane_panyiyun  阅读(532)  评论(1编辑  收藏  举报