如何从一个无序数组中获取最大值或最小值?
这是我在园子的第一篇文章,写得不好还请大家多多见谅,呵呵。
如何从一个无序数组中获取最大值或最小值?
思路:Array中并没有提供这样的方法,但我们可以借助Math中的max()或min()方法。
借助其他对象的方法的最佳途径就是apply()。
var values=[1,3,4,2,5,6,7]; var max=Math.max.apply(Math,values); console.log(max); //7 var min=Math.min.apply(Math,values); console.log(min); //1
代码分析:此处的this是执行上下文对象,换成任何值均可:this,null,Math.
values是一个数组,但传递给Math.max()的是数组values里的参数,而非数组本身。
得益于apply()方法,我们可以巧妙地获取数组里的参数,然后传给Math对象的max()方法。
总结:JavaScript 好比WOW,Math.max()好比法师,apply好比法师的赚钱秘籍——传送门。
举例:联盟战士想从暴风雪去达拉然,坐船加飞行太麻烦了,不如直接找法师开个门,多简单。
你想从某个数组中获取最大值,如果要先排序就太麻烦了,不如直接找Math.max()借个apply方法,多方便。
浙公网安备 33010602011771号