【js小品一则】三种方法封装一个根据布尔值求数组最大值或最小值的函数。第三种你绝对想不到。

题目要求,封装一个函数,有两个参数数组和布尔值,根据布尔值选择求任意数组的最大值或最小值。

首先分析题目,封装一个函数,这个函数要能求数组最大值也能求数组最小值,而且用布尔值来选择是求最大值还是最小值。
所以是一个求数组最大值和求最小值的for循环,以及一个if判断就可以完成这个函数。

代码如下:
方法一:最容易理解也是最长的一个答案

function getBig (arr, boolean) {
      
      //第一种方法
     if (boolean == true) {//if判断
        let max = arr[0]   //求数组最大值
        for (let j = 0; j < arr.length; j++) {
          if (max < arr[j]) {
            max = arr[j]
          }
        }
        return max;
      } else {
        let min = arr[0]   //求数组最小值
        for (let j = 0; j < arr.length; j++) {
          if (min > arr[j]) {
            min = arr[j]

          }
        }
        return min;
      }

方法二:根据方法一我们可以看到,两个求数组大小的函数,有很多代码都一致,只有少数地方不一样,所以我们可以合并简洁一下方法一的代码。

 function getBig (arr, boolean) {
      let num = arr[0]
      for (let i = 0; i < arr.length; i++){   //数组的遍历,求数组最大最小值都会有的代码
      if (boolean ?arr[i] > num: arr[i] < num) {  //三元表达式来判断是否求大小值
        num = arr[i]  

      }
     }
    return num
    }

方法三:最简洁也是最难理解的一种方法

 function getBig (arr, boolean) {
 let num = arr[0]
  for (let i = 0; i < arr.length; i++){ 
 if(boolean == arr[i]>num){  //== 有隐式转换的效果,当布尔值为true时,arr[i]>num是求最大值的
        num=arr[i]      //当布尔值为false时,arr[i]>num就要变成假的,也就是arr[i]<num,就是求最小
      }                //值的     
      }             
      return num
      
      }

调用时

    let num1 = getBig([2, 4, 5, 7], false)
    console.log(num1);

大家可以去试试看哦

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值