js获取数组中的最大值/最小值
2019-05-29 18:58
1496 查看
目录
前言
我们会经常在开发过程中,需要获取数组中的最大值或者最小值,可以从以下几个方面考虑:
- 使用
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实现获取数组中最大值或最小值功能示例
- js 获取数组最小/最大值
- js获取数组中的最大值和最小值的方法汇总
- 动态赋值js像map一样,获取数组中最大值,最小值
- JS获取数组最大值、最小值及长度的方法
- js 获取数组最大值和最小值(test)
- JS获取数组最大值、最小值及长度的方法
- Js获取数组中的最大值和最小值
- 使用js获取数组中最大、最小的数字
- Javascript获取数组中的最大值和最小值的方法汇总
- JS中获取多维数组最大值
- 获取数组中最大值的方法(最小值同理)
- 数组 获取最值(最大值 最小值)选择排序 冒泡排序 快速排序 半查找(二分查找) 十进制转其他进制法
- Javascript获取数组中的最大值和最小值方法汇总
- js 取得数组中的最大值和最小值(含多维数组)
- js中如何快速获取数组中的最大值最小值
- JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值
- 求js数组的最大值和最小值的四种方法
- JS中获取数组的最大值方法