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