js获取数组中的最大值/最小值
前言
我们会经常在开发过程中,需要获取数组中的最大值或者最小值,可以从以下几个方面考虑:
- 使用
Math.max()
、Math.min()
方法 - 排序之后,获取最大/最小值
下面我们来看看,如何获取下面数组的最大值(最小值类似获取):
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获取数组中的最大值/最小值的更多相关文章
- js获取数组中的最大值最小值
遍历方法: var tmp = [1,12,8,5]; var max = tmp[0]; for(var i=1;i<tmp.length;i++){ if(max<tmp[i])max ...
- js中快速获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a)); //最小值 多维数组如下 v ...
- js中如何快速获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...
- js中获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...
- js 获取数组中的最大值和最小值
var arr = [3,12,23,18,25,33,22,30,1] 方案一: 思想 首先对数组进行排序(小 >大),第一项为最小值,最后一项为最大值 var min; var max; a ...
- Javascript获取数组中的最大值和最小值的方法汇总
比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧 比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用 ...
- js获取数组中最大值和最小值
var max = Math.max.apply(null, 数组); 获取最大值 var min = Math.min.apply(null, 数组);获取最小值 一句话获取数组中最大的数,最小数
- Javascript获取数组中最大和最小值
取出数组中最大值或最小值是开发中常见的需求,今天继续讲解如何获取javascript数组中最大和最小值. 1.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一 ...
- js 取得数组中的最大值和最小值(含多维数组)
转自:http://www.dewen.org/q/433 方法一: var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math. ...
随机推荐
- 【转载】C#的DataTable使用NewRow方法创建新表格行
在C#的DataTable数据表格操作过程中,DataRow类表示DataTable中的数据行信息,但DataRow没有可以直接实例化的构造方法,在创建DataTable的新行的时候,不可直接使用Da ...
- 网址URL分解
http://www.joymood.cn:8080/test.php?user=admin&pwd=admin#login 1.location.href:得到整个如上的完整url 2.lo ...
- django应用之corsheaders[跨域设置]
安装 pip install django-cors-headers 注册应用 INSTALLED_APPS = ( ... 'corsheaders', ... ) 中间层设置 MIDDLEWARE ...
- JVM 整体流程介绍
一. JVM自身的物理结构 从图中可以看出 JVM 的主要组成部分 ClassLoader(类加载器),Runtime Data Area(运行时数据区,内存分区),Execution Engine( ...
- Prometheus学习笔记(6)Alertmanager告警
目录 一.Alertmanager简介 二.Alertmanager部署 三.Alertmanager配置 四.自定义告警规则和发送 五.自定义告警模板 一.Alertmanager简介 Promet ...
- Linux运维技术之scp命令使用
命令格式: scp -P 8031 -r 路径1 路径2 命令解释, 其中-P中的P一定要大写,小写不行(这个也是问题的关键,这个大小写耽搁了好长时间) -P 2424表示更改SSH端口后的端口,如 ...
- 自制Linux操作系统
自制Linux操作系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.添加一块新的磁盘设备 1>.将虚拟机关机,点击"编辑虚拟机设置" 2>.点 ...
- JAVA构造器,重载与重写
1. java构造器 构造器也叫构造方法(constructor), 用于对象初始化. 构造器是一个创建对象时被自动创建的特殊方法,目的是对象的初始化. 构造器 的名称与类的名称一致. JAVA通过n ...
- SpringBoot——经典的Hello World【二】
前言 来创建个hello world 呗 步骤 首先肯定是要打开我们的IDEA来创建一个Maven的项目哈 创建项目 1. File->New->Project 2.Maven->J ...
- Spring核心模块解析
Spring框架是一个轻量级的集成式开发框架,可以和任何一种框架集成在一起使用,可以说是一个大的全家桶.Spring从1.x发展到现在的5.x可以说是越来越强大,下面来看看Spring都包含哪些核心的 ...