求数组中的最大值和最小值有很多种方法:
🧡方法1:for循环找最大值;
💛方法2:先对数组排序(从大到小,或者从小到大)max/min = arr[length-1]
💜方法3:使用内置对象Math身上的max/min方法,注意这种方法传入的值是不是数组,而是一个接一个的元素,这时候应该想到 ES6中的解构数组 了
💚方法4:巧用apply方法,因为apply方法它在执行的时候,可以将传入的数组解析成一个一个的元素。
代码验证:
let arr = [23,1,33,6,8,2];
max = Math.max(...arr);
console.log(max) //33
min = Math.min.apply(null,arr)
console.log(min) //1
关于apply方法的说明:
1、Math.max 参数里面不支持 Math.max([param1,param2]) 也就是数组 它支持Math.max(param1,param2,param3…),所以可以apply执行时会将数组解析成单个元素传入的特点来解决
2、第一个参数null?
第一个参数给了一个null,这个是因为没有对象去调用这个方法,
我只需要用这个方法帮我运算,得到返回的结果就行,.所以直接传递了一个null过去
综上所属:
用Math.max()+es6解构方法是最简单的。只需一行代码
感觉学好 数组 的各种方法,做算法题直接起飞!!!!