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);

这里就分享这么多,希望可以给大家带来帮助

原文地址:https://www.cnblogs.com/chengjunL/p/6098115.html