Return Largest Numbers in Arrays - Feedback

SOLUTION:

``````function largestOfFour(arr) {
var finalArray = []; //create empty array to store largest number of each subarray

for (var i = 0; i < arr.length; i++) { //loop through arr
var largestNumber = arr[i][0]; //initialize largest number
for (var j = 0; j < arr[i].length; j++) { //loop through subarray
if (arr[i][j] > largestNumber) { // Find largest number in subarray
largestNumber = arr[i][j];
}
} finalArray.push(largestNumber); //Push largest number to finalArray
} return finalArray;
}

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

Does my code make sense to you and is it straightforward? How did you do?

Thanks!

For me it makes perfectly sense as it is the â€śbasicâ€ť straightforward way to solve this challenge in my mind.

I solved it in a different way using map/reduce. For me it seems more intuitive like words describing the solution instead of an algorithm describing the solution which requires few seconds until you can completely understand.

In your situation you can use the map function to map from array to subarray and you can use the reduce function to reduce each subarray to the largest number in this array.

1 Like

I donâ€™t know the actual task, but according to your code, getting the largest Number for each subarray you could also do something like this:

``````function largestOfFour (arr) {
return arr.reduce(function(final, sub) {
return final.concat(Math.max(...sub));
}, []);
}
``````

OR with Arrow-Functions

``````const largestOfFour = arr => arr.reduce((final, sub) => final.concat(Math.max(...sub)), []);
``````

If you need some more explanation, let me know

1 Like

Probably the simplest solution:

``````function get_max(arr) {
return arr.map(x=>Math.max.apply(null,x));
}
``````
1 Like
``````const largestOfFour = (xs) => Math.max( ...[].concat(...xs) )
``````
1 Like

Thank you! I will most definitely try that out!