前言

我们会经常在开发过程中,需要获取数组中的最大值或者最小值,可以从以下几个方面考虑:

  1. 使用Math.max()Math.min()方法
  2. 排序之后,获取最大/最小值

下面我们来看看,如何获取下面数组的最大值(最小值类似获取):

let arr = [1, 2, 5, 8, 10, 100, -1]

1. 使用Math的静态方法max/min

Math.max()函数返回给定的一组数中的最大值。

它的语法:Math.max(value1[, value2, ...])

使用此方法,需要注意,如果没有参数的话,则返回-Infinity。如果有任一参数无法被转换成数值,则返回NaN

1.1 结合ES6的扩展运算符...使用

扩展运算符,可以将数组形式转换为逗号参数的形式。

Math.max(...arr)

1.2 结合apply/call方法来使用

利用apply()方法的第一个参数可以改变this的指向,第二个参数是数组的形式,来完成这一需求。

Math.max.apply(null, arr)

既然apply()方法可以使用,那么我们也可以使用call()方法,并配合扩展运算符使用。

Math.max.call(null, ...arr)

1.3 结合reduce来使用

reduce()方法接收一个函数作为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值。

语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

在这里,这个累加器函数就是getMax(),比较两个数,返回其中的最大值,通过这样的缩减,最后返回整个数组的最大值。

function getMax(prev, next) {
return Math.max(prev, next)
}
arr.reduce(getMax)

2. 排序获取

2.1 只比较找出最大值

假定数组中的第一个元素值最大max,循环数组,将max与其他元素做比较,大的值赋给max。循环结束之后,max的值即为最大值。

let max = arr[0]
arr.forEach(item => max = item > max ? item : max)
console.log(max) // 100

2.2 将整个数组都排序,获取最大值

利用array.sort()方法,指定排序函数,来排序数组。当然,你也可以使用其他排序方式,来排序数组。

let AS = arr.sort((a, b) => a - b)
AS[arr.length-1] // 获取最大值:100
AS[0] // 获取最小值: -1

浏览器中运行结果

[完]

js获取数组中的最大值/最小值的更多相关文章

  1. js获取数组中的最大值最小值

    遍历方法: var tmp = [1,12,8,5]; var max = tmp[0]; for(var i=1;i<tmp.length;i++){ if(max<tmp[i])max ...

  2. js中快速获取数组中的最大值最小值

    var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a)); //最小值 多维数组如下 v ...

  3. js中如何快速获取数组中的最大值最小值

    var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...

  4. js中获取数组中的最大值最小值

    var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...

  5. js 获取数组中的最大值和最小值

    var arr = [3,12,23,18,25,33,22,30,1] 方案一: 思想 首先对数组进行排序(小 >大),第一项为最小值,最后一项为最大值 var min; var max; a ...

  6. Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧   比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用 ...

  7. js获取数组中最大值和最小值

    var max = Math.max.apply(null, 数组); 获取最大值 var min = Math.min.apply(null, 数组);获取最小值 一句话获取数组中最大的数,最小数

  8. Javascript获取数组中最大和最小值

    取出数组中最大值或最小值是开发中常见的需求,今天继续讲解如何获取javascript数组中最大和最小值. 1.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一 ...

  9. js 取得数组中的最大值和最小值(含多维数组)

    转自:http://www.dewen.org/q/433 方法一: var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math. ...

随机推荐

  1. 常用的本地存储-----cookie篇

    1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要最新数据也可以减少向服务器 ...

  2. 英语aeroides海蓝宝石aeroides单词

    海蓝宝石(aeroides,Aquamarine)是一种含铍.铝的硅酸盐,与祖母绿.乌兰孖努以及碧玺等统称为彩色宝石.海蓝宝石的颜色为天蓝色至海蓝色或带绿的蓝色,它的颜色形成主要是由于含微量的二价铁离 ...

  3. Web前端2019面试总结3(东软集团面试题)

    严禁转载,严禁分享,只供私自鉴赏,请君悉知! 一:基础题 1.什么是margin塌陷?请写出至少三种解决margin塌陷的方法. 答:当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现 ...

  4. JAVA自定义查询策略

    此文章为个人笔记,考虑之后工作用到,博客方便于查找,如果可以给他人提供参考价值,那再好不过 1.定义查询接口参数 package com.qy.code.generator.query; import ...

  5. ls - 列出目录清单信息

    ls - list directory contents 列出目录内容 格式: ls [OPTION]... [FILE]... 常用选项: -a:显示所有文件或目录(包括隐藏目录和.(当前目录),. ...

  6. 《linux就该这么学》课堂笔记03 命令初识 echo、date、reboot、poweroff、wget...

    Linux进程的六种状态(R.S.D.T.Z.X): R --- TASK_RUNNING(可执行状态) S --- TASK_INTERRUPTIBLE(可中断的睡眠状态) D --- TASK_U ...

  7. python爬取站长之家植物图片

    from lxml import etree from urllib import request import urllib.parse import time import os def hand ...

  8. Android 还可以走多久?

    最近,有位知识星球的球友问我这么一个问题: 我做 Android 开发五年多时间了,但是最近总是很焦虑,看着人工智能越来越火,很担心 Android 要不行了,想问下,我现在要转行么?Android ...

  9. win10如何找回自带的照片查看器

    1.接着我们在打开的记事本中一字不差的输入以下代码 Windows Registry Editor Version 5.00 ; Change Extension's File Type [HKEY_ ...

  10. Win10上的Docker应用:Hello World

    前言: 最近学习了Docker相关技术点,国内关于Docker的资料大多是基于Linux系统的,但是我对Linux又不熟(实际上没用过,掩面哭笑.Jpg). 好在在Win10下也是支持Docker的, ...