函数的应用求数组最大值

163 阅读1分钟

函数的应用求数组最大值或最小值

  • 本案例考察知识点: 函数声明、函数调用、函数传参、函数返回值

需求:声明一个函数,求任意数组最大值并返回这个最大值

示例代码如下:

    <script>
    
    function getMax(arr) {
        let max = arr[0]

        for (let i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i]
            }
        }
        return max

    }

    let res = getMax([20.30, 66, 88, 100])
    console.log(res)
     </script>
 
 

需求: 用函数求任意数组的最大值或者最小值

思路: 第一个参数: 数组 第二个参数:布尔类型 true:最大值 false:最小值

示例代码如下:

       <script>
       
        function getSum(arr, flog) {
        if (flog) {
            // 求最大值
            let max = arr[0]
            for (let i = 1; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i]
                }
            }
            return max
        } else {
            // 求最小值
            let min = arr[0]
            for (let i = 1; i < arr.length; i++) {
                if (arr[i] < min) {
                    min = arr[i]
                }
            }
            return min

        }
    }

    let res = getSum([20, 50, 66, 88, 120], true)
    console.log(res)
    let res1 = getSum([20, 50, 66, 88, 120], false)
    console.log(res1)
     </script>
    

或者用三元表达式来实现:

     <script>

     function getSum(arr, flag) {
        let num = arr[0]
        for (let i = 1; i < arr.length; i++) {
            if (flag ? arr[i] > num : arr[i] < num) {
                num = arr[i]
            }
        }
        return num
    }
    
    let res = getSum([20, 50, 66, 88, 120], true)
    console.log(res)
    let res1 = getSum([20, 50, 66, 88, 120], false)
    console.log(res1)
</script>

第三种比较难理解可以做为了解,代码量最少的一种方式

function getNum(arr, bol) {
    let num = arr[0]
    for(let i = 0;i<arr.length;i++){
        /* 
        bol : true 求最大值     true == arr[i] > num
            * 当bol为true的时候,  arr[i]>num也为true
        bol : false 求最小值     false == arr[i] > num  
            * 当bol为false的时候,  arr[i]>num也为false ( arr[i]比num小才为false)
        */
         if( bol == arr[i] > num ){
             num = arr[i]
        } 
    }
    return num
  }

  let num1 = getNum([20, 55, 60, 88, 100], true)
  console.log( num1 )
  

  let num2 = getNum([20, 55, 60, 88, 100], false)
  console.log( num2 )