Fork me on GitHub
杨小慧的博客

JavaScript算法题(1)—— Return Largest Numbers in Arrays

Return an array consisting of the largest number from each provided sub-array. For simplicity, the provided array will contain exactly 4 sub-arrays.

1
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

1. Basic Code Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
function largestOfFour(arr) {
var results = [];
for(var i = 0; i < arr.length; i++){
var largestNumber = 0;
for(var j = 0; j < arr[i].length; j++){
if(arr[i][j] > largestNumber) {
largestNumber = arr[i][j];
}
}
results[i] = largestNumber;
}
return results;
}

算法说明:

  • 创建results变量存储返回的结果数组;
  • 创建一个外部循还遍历外层数组;
    • 创建内层循还遍历每一个内层数组,寻找最大值,存储在变量largestNumber中;
    • 将每一个内层数组中的最大值保存在results中的相应位置;
  • 返回结果数组。

2. Intermediate Code Solution

1
2
3
4
5
6
7
function largestOfFour(arr) {
return arr.map(function(group){
return group.reduce(function(prev, current) {
return (current > prev) ? current:prev;
},0);
});
}

3. Advanced Code Solution

1
2
3
function largestOfFour(arr) {
return arr.map(Function.apply.bind(Math.max, null));
}
------本文结束感谢阅读------