找出多個數(shù)組中的最大數(shù)
右邊大數(shù)組中包含了4個小數(shù)組淫半,分別找到每個小數(shù)組中的最大值钾菊,然后把它們串聯(lián)起來帅矗,形成一個新數(shù)組。
提示:你可以用for循環(huán)來迭代數(shù)組煞烫,并通過arr[i]的方式來訪問數(shù)組的每個元素浑此。
當(dāng)你完成不了挑戰(zhàn)的時(shí)候,記得開大招'Read-Search-Ask'滞详。
這是一些對你有幫助的資源:
Comparison Operators
方法一
function largestOfFour(arr) {
// 請把你的代碼寫在這里
var arr1=[];
for(var i=0;i<arr.length;i++){ //遍歷數(shù)組
arr[i].sort(function(a,b){ //對每個子數(shù)組進(jìn)行升序排序
return a-b;
});
arr1.push(arr[i][arr.length-1]); //將升序排序后的數(shù)組的最大的元素寫入arr1數(shù)組中
}
return arr1; //返回arr1數(shù)組即為所要求的結(jié)果
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);// [5, 27, 39, 1001]
注意:
①:.sort()是對數(shù)組的引用凛俱。數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本料饥。
方法二 .map()函數(shù)和.reduce()函數(shù)
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]]));
現(xiàn)在.bind還沒學(xué)到.apply還沒怎么用過蒲犬,以后看到要親自寫一遍