zoukankan      html  css  js  c++  java
  • 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);

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

  • 相关阅读:
    数据库系统理论概念
    SQL常用函数
    Android中几种常见的定时刷新方式
    Android Resource介绍和使用
    Android 使用Loader示例
    Android框架浅析之锁屏(Keyguard)机制原理
    Android Power Management
    Android中蓝牙的基本使用
    分组ListView使用技巧
    使用CursorLoader异步加载数据
  • 原文地址:https://www.cnblogs.com/chengjunL/p/6098115.html
Copyright © 2011-2022 走看看