JS获取数组的最大最小值

可以从两个方面考虑

        1、使用Math.max()、Math.min()方法

        2、遍历数组获取最大值

使用Math的静态方法max/min 

       1、结合ES6使用扩展运算符

               Math.max(...arr)

               扩展运算符:将数组转化成以逗号分隔的参数

        2、使用apply或者call方法

                Math.max.apply(null,arr);

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

                区别:apply方法的参数是数组,call方法的参数是逗号间隔的参数列表

        3、结合reduce方法

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

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

                function getMax(prev, next) {

                        return Math.max(prev, next)

                 }

                arr.reduce(getMax)使用遍历获取

遍历方法获取 

1、只比较找出最大值

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

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

2、将真个数组都排序,找出最大值

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

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

代码实现如下:

​
let arr = [2,-1,56,100,-100,32,4,9];

let max1 = Math.max(...arr);
console.log("max1:"+max1);

let max2 = Math.max.apply(null,arr);
console.log("max2:"+max2);

let max3 = Math.max.call(null,...arr);
console.log("max3:"+max3);

function getMax(pre,next){
	return Math.max(pre,next);
}
let max4 = arr.reduce(getMax);
console.log("max4:"+max4);

let max5 = arr[0];
arr.forEach((item) => max5 = (item > max5 ? item : max5))
console.log("max5:"+max5);

const newArr = arr.sort((a,b) => a - b);
let max6 = newArr[arr.length - 1];
console.log("max6:"+max6);

浏览器结果如下:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值