博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js学习总结----获取数组最大值
阅读量:4337 次
发布时间:2019-06-07

本文共 1508 字,大约阅读时间需要 5 分钟。

一共四个方法,面试的时候可以考虑:

     var ary = [12,23,34,24,35,14,25,36]        //1、排序法:从小到大排序,然后选择最后一个为最大        ary.sort(function(a,b){            return a-b;        })        var min = ary[0];        var max = ary[ary.length - 1];        console.log(min,max)        /*          2、假设法:假设当前数组中的第一个值是最大值,然后拿这个值和后面的项逐一进行比较,如果后面某一项比假设的还要大,说明假设错了,我们把假设的值进行替换          和自定义属性一样,都是JS中最常用的编程思想        */        var max = ary[0];        for(var i = 0;i
max?max = cur:null; } //3、使用Math中的max/min方法实现,以下代码实现不了 console.log(Math.min(12,23,34,24,35,14,25,36)); //它是在执行的时候,把需要比较的那堆数一个个的传递进来,这样才可以得到最后的结果,一下放一个ary数组进来是不可以的 //第一次尝试 Math.min([12,23,34,24,35,14,25,36]) //join/toString ->"12,23,34,24,35,14,25,36" //eval:把一个字符串变为JS表达式执行 //eval("12,23,34,24,35,14,25,36") 结果只会是最后一项 这里就涉及一个括号表达式的概念 //第二次尝试 "Math.max("+ary.toString()+")"//'Math.max(12,23,34,24,35,14,25,36)' 首先不要管其他的,先把我们最后要执行的代码都变成字符串,然后把数组中的每一项的值分别的拼接到这个字符串中 var max = eval("Math.max("+ary.toString()+")")// 这个才是正解 function fn1(){ console.log(1) } function fn2(){ console.log(2) } var obj = {name:'李四',fn:fn2} ;(fn1,fn2)();//只有fn2执行了->(x1,x2,x3...)括号表达式,一个括号中出现多项内容,中间用","隔开,但是我们最后获取到的结果只有最后一项 (fn2,obj.fn)();//执行的是obj.fn,但是执行的时候最后的this是window而不是obj (obj.fn)()// this 还是obj //apply方法 var max = Math.max.apply(null,ary);

 

转载于:https://www.cnblogs.com/diasa-fly/p/7093370.html

你可能感兴趣的文章
Next Permutation
查看>>
《算法导论》CLRS算法C++实现(九)P109 选择数组中第i小(大)的数 顺序统计量...
查看>>
Template基础
查看>>
vue项目如何打包扔向服务器
查看>>
Observer(观察者)
查看>>
nodejs vinyl-fs 处理文件时输入问题
查看>>
HDU - 2602 Bone Collector
查看>>
虚拟机静态IP配置
查看>>
今天遇到了一个问题,将应用程序从服务器读取到的电话号码存储到通讯录中,必须在真机上跑,有点小激动。...
查看>>
python不换行输出
查看>>
Jexus部署Asp.Net Core项目
查看>>
itunes connect提交app教程
查看>>
C#面试题整理(1)
查看>>
怎样判断有没有SQL注入?
查看>>
POJ 1321 棋盘问题 DFS 期末前水一水就好……
查看>>
【原创】setjmp longjump一些注意点及使用方法
查看>>
注册团队博客地
查看>>
禁止IOS在浏览器手动缩放
查看>>
查询centos查看系统内核版本,系统版本,32位还是64位
查看>>
crontab执行脚本中文乱码,手动执行没有问题
查看>>