美文网首页
FCC 257 - 找出多个数组中的最大数

FCC 257 - 找出多个数组中的最大数

作者: 蜡笔小狗 | 来源:发表于2017-07-31 22:00 被阅读0次

    找出多个数组中的最大数
    右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。
    提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。
    当你完成不了挑战的时候,记得开大招'Read-Search-Ask'。

    这是一些对你有帮助的资源:
    Comparison Operators

    方法一

    function largestOfFour(arr) {
      // 请把你的代码写在这里
         var arr1=[];
         for(var i=0;i<arr.length;i++){     //遍历数组
            arr[i].sort(function(a,b){     //对每个子数组进行升序排序
                return a-b;
            });
         arr1.push(arr[i][arr.length-1]);  //将升序排序后的数组的最大的元素写入arr1数组中
         }
         return arr1;                              //返回arr1数组即为所要求的结果
        }
    largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);// [5, 27, 39, 1001]
    

    注意:
    ①:.sort()是对数组的引用。数组在原数组上进行排序,不生成副本。

    方法二 .map()函数和.reduce()函数

    function largestOfFour(arr){
    return arr.map(function(group){
      return group.reduce(function(prev,current){
        return (current > prev) ? current : prev;
    },0)
    })
    }
    console.log(largestOfFour([[4,5,1,3],[13,27,18,26],[32,35,37,39],[1000,1001,857,1]]));
    

    方法三:代码简单 待理解

    function largestOfFour(arr) {
      return arr.map(Function.apply.bind(Math.max, null));
    }
         console.log(largestOfFour([[4,5,1,3],[13,27,18,26],[32,35,37,39],[1000,1001,857,1]]));
    

    现在.bind还没学到.apply还没怎么用过,以后看到要亲自写一遍

    相关文章

      网友评论

          本文标题:FCC 257 - 找出多个数组中的最大数

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