前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端面试系列(8)

前端面试系列(8)

作者头像
李才哥
发布2019-08-02 12:27:02
3170
发布2019-08-02 12:27:02
举报
文章被收录于专栏:李才哥李才哥

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

在任何时代,

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

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

没有任何一种文化模因

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

在任何时代,

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

没有一点高级。

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

耐心地拆除信息壁垒,

并且能够坚持下来,

那真不是一般的不易。

在任何时代,

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

和花半辈子看不清的人,

自然是不一样的命运。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 李才哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • js取数组最大值的方式???
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档