美文网首页
js求数组最值

js求数组最值

作者: duans_ | 来源:发表于2018-09-22 19:45 被阅读10次

    求数组中的最大数

    • 常规做法
    var arr=[11,222,333,44,55];
    
    1. 方案一

    通过apply方法调用内置对象Math.max()方法

    function getMax(max){
       return  Math.max.apply(null,arr);
    }
    
    1. 方案二

    假设索引为0的元素为最大值,然后循环用每个元素和最大值比较,最终取得最大值

    function getMax(arr){
        if(arr.length<=1){
            return arr[0];
        }
       var max=arr[0];
       for(var i=0;i<arr.length;i++){
           if(arr[i]>max){
               max=arr[i];
           }
       }
       return max;
    }
    
    1. 方案三

    先对数组进行升序排序,然后直接取出最后一个元素,即为最大值

    function getMax(){
        if(arr.length<=1){
            return arr[0];
        }  
        //升序排列数组
        arr.sort(function(a,b){
            return  a-b;
        });  
        //取出最后一个元素,即为最大值
        return arr[arr.length-1];
    }
    
    1. 方案四

    es6扩展运算符

    function getMax(arr){
        return Math.max(...arr)
    }
    

    求数组中的最小数

    • 常规做法
    var arr=[11,222,333,44,55];
    
    1. 方案一

    通过apply方法调用内置对象Math.min()方法

    function getMin(arr){
        return Math.min.apply(null,arr);
    }
    
    1. 方案二

    假设索引为0的元素为最小值,然后循环用每个元素和最小值比较,最终取得最小值

    function getMin(arr){
        if(arr.length<=1){
            return arr[0];
        }
       var min=arr[0];
       for(var i=0;i<arr.length;i++){
           if(arr[i]<min){
               min=arr[i];
           }
       }
       return min;
    }
    
    1. 方案三

    先对数组进行升序排序,然后直接取出最后一个元素,即为最小值

    function getMin(){
        if(arr.length<=1){
            return arr[0];
        }  
        //升序排列数组
        arr.sort(function(a,b){
            return  b-a;
        });  
        //取出最后一个元素,即为最大值
        return arr[arr.length-1];
    }
    
    1. 方案四

    es6扩展运算符

    function getMin(arr){
        return Math.min(...arr)
    }
    

    相关文章

      网友评论

          本文标题:js求数组最值

          本文链接:https://www.haomeiwen.com/subject/skmxoftx.html