js 获取数组中的最大值和最小值

  var arr = [3,12,23,18,25,33,22,30,1]

  方案一: 思想 首先对数组进行排序(小 》大),第一项为最小值,最后一项为最大值

  var min;

  var max;

  arr.soft(function(a,b){return a-b;})

  min = arr[0];

  max = arr[arr.length-1];

  方案二: 思想 采用Math对象里的min()方法和 max()方法,需要将比较的数一个一个的传递进来才能比较,但是可以通过以下方式转化即可;

  var min = Math.min(arr);

  console.log(min)   // NAN

  console.log(Math.min(3,12,23,18,25,33,22,30,1))   // 1

  console.log(Math.max(3,12,23,18,25,33,22,30,1))   // 33 

 

  var min =eval("Math.min(" +arr.toString()+")");  // 1     采用字符串拼接

  var min = eval("Math.max(" +arr.toString()+")");;  // 33

 

  var min = Math.min.apply(obj,arr)  // 1     利用apply方法一项一项传质的特点

  var max =Math.max.apply(obj,arr)  // 33 

  

  

  方案三: 思想 假设法: 假设第一项为最小项或者最大项,依次和后面的进行比较求得最小值或者最大值;

  Array.prototype.compareVal = function(){

    if(this instanceof Array){

      var min = this[0]; 

      var max = this[0];

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

        var cur = this[i];

        cur > max ? max = cur : null;

        cur < min ? min = cur : null;  

      }

      console.log("min= " +min+ ",max = " +max);  // min=1 ,max = 33

    }

  }

  arr.compareVal();

 

posted on 2018-04-04 17:47  ywx354980  阅读(20439)  评论(0编辑  收藏  举报