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

找出多个数组中的最大数
右边大数组中包含了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还没怎么用过,以后看到要亲自写一遍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容