取二维数组最大值

    //取二维数组最大值


    var test=[[1,34],[456,2,3,44,234],[4567,1,4,5,6],[34,78,23,1]];

    //1. junior
    function getMaxOne(arr){
        var tmp=[];
        for(var i=0;i<arr.length;i++){
            tmp[i]=0;
            for(var j=0;j<arr[i].length;j++){

                if(tmp[i]<arr[i][j]){
                    tmp[i]=arr[i][j];
                }
            }
            
        }
        return tmp;
    }
    var rel=getMaxOne(test);
    //console.log(rel)



    //2. middle
    function fungetMax(arr){
        return arr.map(function(currentvalue,index,array){
            return currentvalue.reduce(function(standard,current){
                return standard>current?standard:current;
            });
        })
    

    }
    var rem=fungetMax(test);
    //console.log(rem)



    //3. senior
    function max(arr){
        return arr.map(Function.apply.bind(Math.max,null));
    }




    //基于senior
    function mySenior(arr){
        return arr.map(function(currentValue,index,arr){
            return Math.max.apply(null,currentValue)//apply传入null表示不需要上下文
        })

    }
    var me=mySenior(test)
    //console.log('me='+me)




    //4. smart 二维数组的最大值
    function smart(arr){
        //将二维乃至多维数组合并
        var newArr=arr.join(',').split(',');
        return Math.max.apply(null,newArr);
    }
    var smart=smart(test)
     //console.log(smart)

 

 

 

<html>

参考自<a href=http://www.w3cplus.com/javascript/algorithm-return-largest-numbers-in-arrays.html>大漠</a>

</html>

posted @ 2017-05-22 23:03  hngbk  阅读(1204)  评论(0)    收藏  举报