计算机教程

当前位置:澳门娱乐场网址 > 计算机教程 > 5.7.2.2 min()和max()方法,5.7.2.2min澳门娱乐场网址

5.7.2.2 min()和max()方法,5.7.2.2min澳门娱乐场网址

来源:http://www.ablakeforum.com 作者:澳门娱乐场网址 时间:2019-11-23 23:41

5.7.2.2 min()和max()方法,5.7.2.2min

  Math对象还包含许多方法,用于辅助完成简单和复杂的数学计算。

  其中,min()和max()方法用于确定一组数值中的最小值和最大值。这两个方法都可以接受任意多个数值参数,如下例子:

var max = Math.max(3,54,32,16);
alert(max);//54

var min = Math.min(3,54,32,16);
alert(min);//3

  对于3、54、32和16,Math.max()返回54,而Math.min()返回3。这两个方法经常用于避免多余的循环和在if语句中确定一组数的最大值。

  要找到数组中的最大或最小值,可以像下面这样使用apply()方法。

var values = [1,2,3,4,5,6,7,8];

var max=Math.max.apply(Math,values);

  这个技巧的关键是把Math对象作为apply()的第一个参数,从而正确的设置this值。然后,可以将任何数组作为第二个参数。

http://www.bkjia.com/jQuery/1009719.htmlwww.bkjia.comtruehttp://www.bkjia.com/jQuery/1009719.htmlTechArticle5.7.2.2 min()和max()方法,5.7.2.2min Math对象还包含许多方法,用于辅助完成简单和复杂的数学计算。 其中,min()和max()方法用于确定一组数值中...

推荐阅读:JavaScript学习笔记之数组的增、删、改、查

JavaScript学习笔记之数组求和方法

JavaScript学习笔记之数组随机排序

在实际业务中有的时候要取出数组中的最大值或最小值。但在数组中并没有提供arr.max这样的方法。那么是不是可以通过别的方式实现类似这样的方法呢?那么今天我们就来整理取出数组中最大值和最小值的一些方法。

取数组中最大值

将数组中第一个元素赋值给一个变量,并且把这个变量作为最大值;

开始遍历数组,从第二个元素开始依次和第一个元素进行比较

如果当前的元素大于当前的最大值,就把当前的元素值赋值给最大值

移动到下一个元素,继续按前面一步操作

当数组元素遍历结束时,这个变量存储的就是最大值

Array.prototype.max = function () {// 将数组第一个元素的值赋给maxvar max = this[0];// 使用for 循环从数组第一个值开始做遍历for (var i = 1; i < this.length; i  ) {// 如果元素当前值大于max,就把这个当前值赋值给maxif  {max = this[i];}}// 返回最大的值return max;}

var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234

上面的示例,数组中都是数值,那么如果数组中不全是数值会是一个什么样的效果呢?来测试一下先:

var arr = [1,45,23,3,6,2,7,234,56,'2345','a','c'];arr.max(); // 'c'

澳门娱乐场网址,这并不是我们想要的结果吧。

通过前段时间的学习,都知道for循环性能要比forEach()差,那可以将上面的方法改成forEach()方法:

Array.prototype.max = function (){var max = this[0];this.forEach (function{if {max = ele;}})return max;}var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234

取数组中最小值

类似取最大值的思路一样,我们可以很轻松的实现arr.min()方法,取出数组中的最小值:

Array.prototype.min = function () {var min = this[0];this.forEach(function {if {min = ele;}})return min;}var arr = [1,45,23,3,6,2,7,234,56];arr.min(); // 1

其他方法

除了上面的方案,还可以有其他方法,比如使用数组的reduce()方法。回忆前面的学过的知识,reduce()方法可以接收一个回调函数callbackfn,可以在这个回调函数中拿数组中的初始值与数组中当前被处理的数组项做比较,如果preValue大于curValue值返回preValue,反之返回curValue值,依此类推取出数组中最大值:

Array.prototype.max = function() {return this.reduce(function(preValue, curValue,index,array) {return preValue > curValue ? preValue : curValue;})}var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234

本文由澳门娱乐场网址发布于计算机教程,转载请注明出处:5.7.2.2 min()和max()方法,5.7.2.2min澳门娱乐场网址

关键词: