如何从一个无序数组中获取最大值或最小值?

这是我在园子的第一篇文章,写得不好还请大家多多见谅,呵呵。

如何从一个无序数组中获取最大值或最小值?

思路: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方法,多方便。

posted on 2013-01-11 18:25  初刻哥哥  阅读(1300)  评论(0)    收藏  举报

导航