这是一个很简单的问题,现在我们从循环开始,例如一组数[5,2,1,3,4];求其中的最大值,那么首先我们要定义一个max的中间变量,遍历数组,当遇到比max值大则赋值给max,直到循环结束,就能获取这组数中的最大值了,具体代码如下:
function searchMax(arr) {
var max = 0;
for(var i=0;i<arr.length;i++){
if(arr[i] > max){
max = arr[i]
}
};
return max;
}
第二种方法就是使用Math函数,但是问题来了,Math函数的参数不支持数组形式,所以需要aplly来强制改变运行环境。
Math.max.apply(null,[2,9,14,47,8])
改变之后实际等同于
Math.max(2,9,14,47,8)
这样就能获得一个数组的最大值了,不知道call和apply的朋友可以在深入了解一下。
最后在介绍一种最简单的方法,ES6新增加的扩展运算符"...";
var arr = [1,5,2,4,3];
Math.max(...arr);
这个扩展运算符的功能很强大,比如数组push参数是不支持对象或数组的,但是扩展运算符可以;
var arr1 = [1,2,3];
var arr2 = [4,5,6];
arr1.push(...arr2);
//ES5 的写法就非常麻烦
Array.prototype.push.apply(arr1, arr2);
这里就分享这么多,希望可以给大家带来帮助