前端面试系列(8)

js取数组最大值的方式???

  1. var arr = [7,2,0,-3,5];
  2. 1
  3. 1.apply()应用某一对象的一个方法,用另一个对象替换当前对象
  4. var max = Math.max.apply(null,arr);
  5. console.log(max)
  6. 1
  7. 2
  8. 由于max()里面参数不能为数组,所以借助apply(funtion,args)方法调用Math.max(),function为要调用的方法,args是数组对象,当function为null时,默认为上文,即相当于apply(Math.max,arr)
  9. 2.call()调用一个对象的一个方法,以另一个对象替换当前对象
  10. var max1 = Math.max.call(null,7,2,0,-3,5)
  11. console.log(max1)
  12. 1
  13. 2
  14. call()与apply()类似,区别是传入参数的方式不同,apply()参数是一个对象和一个数组类型的对象,call()参数是一个对象和参数列表
  15. 3.sort()+reverse()
  16. //sort()排序默认为升序,reverse()将数组掉个
  17. var max3 = arr.sort().reverse()[0];
  18. console.log(max3)
  19. 1
  20. 2
  21. 3
  22. 4.sort()
  23. //b-a从大到小,a-b从小到大
  24. var max2 = arr.sort(function(a,b){
  25. return b-a;
  26. })[0];
  27. console.log(max2)

 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();

在任何时代,

教育说起来都是一件高大上的事,

但却没有什么真正有价值的东西是教得会的,

没有任何一种文化模因

可以说清楚一个个体的全部问题。

在任何时代,

想要抓住人性的弱点来赚钱都非常容易,

没有一点高级。

相反,想要建设一种文化,

耐心地拆除信息壁垒,

并且能够坚持下来,

那真不是一般的不易。

在任何时代,

在一秒钟内看到本质的人,

和花半辈子看不清的人,

自然是不一样的命运。

举报

扫码关注云+社区

领取腾讯云代金券