JavaScript 查找数组中最小值和最大值

查找最小值

方法1. Math.min.apply(Math,arr)

function min(target){
    return Math.min.apply(Math,target)
}
console.log(min([1,2,3]))

Math.min()返回给定数值的最小值,如果不是数值则返回NaN。
因为Math.min方法不支持直接传入一个数组,必须一个个参数传入,所以就有了Math.min.apply(this, args); aplly接受两个参数,第一个参数为指定当前函数调用时的this值。
这里第一个参数不重要,第二个参数为数组 ,调用函数时这个数组里的每个元素都会被当成参数传入该函数,也就是相当于把这个数组里所有的元素都传入了 Math.min() 方法。

方法2. 循环

function min(target){
    let min = arr[0];
    for (let i = 0; i < target.length - 1; i++) {
        min= min< target[i+1] ? min: target[i+1]
    }
}

方法3.利用ES6的拓展运算符

Math.min(...target)

方法4 sort

arr.sort((num1, num2) => {
    return num1 - num2 > 0
})
return arr[0]

方法5 reduce

arr.reduce(
 (num1,num2)=>{
     return num1 > num2 ? num2 : num1
    }
)

查找最大值

方法1. Math.max.apply(Math,arr)

function max(target){
    return Math.max.apply(Math,target)
}
console.log(min([1,2,3]))

方法2 ES6拓展运算符

Math.max(...target)

方法3 循环

    let max = arr[0];
    for (let i = 0; i < arr.length - 1; i++) {
        max = max < arr[i+1] ? arr[i+1] : max
    }

方法4 sort

arr.sort((num1, num2) => {
    return num1 - num2 < 0
})
return arr[0]

方法5 reduce

arr.reduce((num1, num2) => {
    return num1 > num2 ? num1 : num2}
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值