文章目录
取数组的最大值(ES5、ES6)的几种方法
// ES5 的写法
Math.max.apply(null, [14, 3, 77, 30]);
// ES6 的写法
Math.max(...[14, 3, 77, 30]);
// reduce
[14,3,77,30].reduce((accumulator, currentValue)=>{
return accumulator = accumulator > currentValue ? accumulator : currentValue
});
这里提供了三种写法,前两种用的都是Math.max()
方法实现的,最后一种用了reduce
API,下面会讲到如何利用基本的Math.max()
方法实现 取数组的最大值,详解apply方法在实例中的运用思想,以及reduce
API的介绍和使用。
Math.max()
前两种写法用的都是Math.max()
方法,这里先介绍一下这个方法:
Math.max() 函数返回一组数中的最大值。
用法:
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
注意是一组数中的最大值,不是一个 数组 的最大值,从上面的用法我们可以看到,参数不是一个数组,而是用逗号隔开的一组数,所以我们才不能直接使用该方法来实现取数组的最大值,而是做一些改进:
apply方法和扩展运算符的使用
apply方法
前面讲到我们不能直接使用Math.max()
方法来实现取数组的最大值,我们可以使用ES5的apply方法来实现。
这里我们主要讲为什么用apply就可以实现获取数组最大值
console.log(Math.max(1, 2, 344, 44, 2, 2, 333));
console.log(Math.max.call