取数组最大/最小值(数组中对象某元素最大值)

本文介绍如何使用JavaScript的Math.min和Math.max结合apply方法从数组中获取最小和最大值,适用于数字数组及对象数组的年龄属性比较。

通过 Math.min.apply和Math.max.apply取出最大值和最小值

方法利用Math的min和max方法;可返回指定的数字中带有最低值的数字或最大值的数字

但是在min和max里不能传入数组,

所以结合apply方法;进行对数组取最大值和最小值。

apply是调用一个对象的一个方法,用另一个对象替换当前对象其参数为:apply(Function, Args),

apply可以最多可以接受两个参数,第一个参数为新的this对象,第二个参数必须是数组。

Math.max.apply(null, arr)
可以看做是
apply(Math.max, arr)
然后,arr是一个参数列表,对于max方法,其参数是若干个数,即
Math.max(a, b, c, d, ...)
当使用apply时,把所有参数加入到一个数组中,即
arr = [a, b, c, d, ...]
代入到原式,
Math.max.apply(null, [a, b, c, d, ...])
实际上等同于
Math.max(a, b, c, d, ...)

var arr = [{
'name': 'abc',
'age': 20
},
{
'name': 'cde',
'age': 19
},
{
'name': 'dfc',
'age': 25
},
{
'name': 'bde',
'age': 21
},
];

let min = Math.min.apply(Math, arr .map(function (o) {
return o.age
}
))

console.log(min)

let max = Math.max.apply(Math, arr .map(function (o) {
return o.age
}
))
console.log(max)

转载于:https://www.cnblogs.com/yutianA/p/10511548.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值