Hello,
I just used this code and not sure why i have to use the
var results = [];
in the beginning, and how that links to the
results[i] = firstNumber;
return results;
portion of this. Could someone explain for me?
thanks
Allen
Hello,
I just used this code and not sure why i have to use the
var results = [];
in the beginning, and how that links to the
results[i] = firstNumber;
return results;
portion of this. Could someone explain for me?
thanks
Allen
Never mind, i get it, itās because I have to return my own array of the top 4 numbers.
Thanks for this!
Itās along the path I took to solve the problem, but slightly more efficient than mine. I mapped, then sorted the array before using my for statement. How did you know you can place the ā[0]ā at the end of the sort method? It makes sense, but I havenāt seen it in the tutorials so far.
Hereās mine
function largestOfFour(arr) {
var results = [];
arr.map(function(a) {
a.sort(function(a,b) {
return b - a;
});
});
for (i = 0; i < arr.length; i++) {
results.push(arr[i].shift());
}
return results;
}
Hey @vsmarcuslewis,
thanks for that reply, it is always good to here nice words.
Since we are talking about it, your approach is pretty neat and very readable.
To answer your question:
I still knew that you could access sub-arrays by adding another [n] behind the first one, but I am not sure if this was explained on FCC, as I use several resources to learn programming.
Anyway I used that and put in the ā0ā to always use .push on the first element of the sorted sub-arrays.
This would save an additional step (or a loop inside another loop).
If you have further questions please let me know
Thanks Jan.
Yea I just started using FCC, trying to do 2 hours a day of studying Iāve had a hard time in the past focusing on actual studies. I noticed I should try to crack open a few books Iāve bought over the years to actually read through to learn more efficiently. FCC is helping though.
Iāll keep chugging through and see how far I can get!
Thanks again
After going through the Basic Algorithm, Iām definitely noticing Iāll need to start looking at other sources along with FCC to progress. A lot of the solutions needed are using functions and elements that werenāt taught in the Front End Dev Cert section.
So much to learn, so much to figure out!
Yeah thatās true and basically what Quincy Larsson (the creator of FCC) says.
I would suggest to look into the āget job ready courseā.
Here is what I have come up with: (Iām just over a week into coding)
function largestOfFour(arr) {
// You can do this!
var sorted = [];
var largest = [];
function sortNumber(a, b){
return a-b;
}
for (var i=0; i < arr.length; i++) {
sorted.push(arr[i].sort(sortNumber));
}
for (var j=0; j < sorted.length; j++) {
largest.push(sorted[j].pop());
}
return largest;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
And here I go:
function largestOfFour(arr) {
//array for storing largest numbers
var largestArr = [];
var largest = 0;//create largest number to have something to compare to
//Loop through an array
for(var i=0; i< arr.length; i++){
//loop through an indicidual numbers of each array
for(var y=0; y< arr[i].length; y++){
//compare each number to our largest number declared earlier
if(arr[i][y] > largest){
largest = arr[i][y];
}
}
largestArr.push(largest);//add largest number to an array
largest = 0;//reset largest number for the next loop phase
}
return largestArr;
}
//test
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
I donāt know about you guys, but those solutions in spoiler section are a bit complicate. Maybe bc Iām new to programming. Anyway after a couple of hours ;-), with breaks I came with my own algorithm:
function largestOfFour(arr) {
var newArr = [];
for(var i = 0; i < arr.length; i++){
newArr[i] = Math.max.apply(null, arr[i]);
}
return newArr;
}
largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]);
I did it with different way, Can anyone comment my mistakes;
function largestOfFour(arr) {
// You can do this!
var arr1 = [];
for (var i = 0; i < arr.length; i++) {
arr1.push(arr[i].sort(function(x,y) {return y - x;}));
}
arr1 = [arr1[0][0],arr1[1][0],arr1[2][0],arr1[3][0]];
// console.log(arr1);
return arr1;
}
largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]);
`
My solution:
function largestOfFour(arr) {
var largestNumbers = [0, 0, 0, 0];
for (i = 0; i < arr.length; i++) {
for (j = 0; j < arr[i].length; j++) {
if (arr[i][j] > largestNumbers[i]){
largestNumbers[i] = arr[i][j];
}
}
}
return largestNumbers;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
Up to this point Iāve been struggling with coming up with some āslickā code compared to the hints.But in this case I think Iāve leaped ahead. This compact solution will work for any number of arrays and any number values in a sub-array:
function largestOfFour(arr) {
if (Array.isArray(arr)) {
subArray = [];
for (i = 0; i < arr.length; i++) {
subArray.push(Math.max.apply(null, arr[i])) ;
}
return subArray;
}
return "Not an Array";
}
largestOfFour([[4, 5, 1, 3, 9], [13, 27, 18, 26], [32, 35, 37, 39,101], [1000, 1001, 857, 1], [1000, 2001, 857, 1]]);
Here is the solution that I came up with:
function largestOfFour(arr) {
// You can do this!
var result = [];
var max = 0;
for(var i=0;i<arr.length;i++) {
for(var j=0;j<arr.length;j++) {
if(arr[i][j]>max) {
max = arr[i][j];
}
}
result.push(max);
max = 0;
}
return result;
}
largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
function largestOfFour(arr) {
// You can do this!
var max=0;
var array=[];
for(var i=0;i<arr.length;i++)
{
for(var j=0;j<arr[i].length;j++)
{
if(arr[i][j]>max)
max=arr[i][j];
}
array[i]=max;
max=0;
}
arr=array;
return arr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
I agree with you Naibā¦I came up with the same solution.
Hello,
I am wondering what is wrong with this code, it does not pass on the following array of arrays:
largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) should return [27,5,39,1001]
It returns [5,27,39,1001] instead.
My code is following:
Thank you for your help in advance.
Brg
Iāve seen a lot of similar solutions but I thought Iād post mine for comparison:
function largestOfFour(array) {
var arr = []; //sub-array
var ans = [];// array of answers
for(i = 0; i < array.length; ++i)
{
arr = array[i];
/.push adds data to end of ans, .sort sorts the data(small - big) then gives the
last element (the biggest number)./
ans.push(arr.sort(function(b, a){return a < b;})[3]); //
}
return ans;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
function largestOfFour(arr) {
// You can do this!
var newArray = [];
for(var i=0;i<arr.length;i++){
for(var y=0;y<arr[i].length;y++){
if(newArray[i]==undefined){
newArray[i] = arr[i][y];
} else if(newArray[i]<arr[i][y]){
newArray[i] = arr[i][y];
}
}
}
return newArray;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
Seem to have found a quick elegant way - found something similar to the basic solution and when trying to recreate the intermediate solution this seemed to work for everything:
function largestofFour(arr) {
arr.reduce(function(a,b) {
return b-a;
});
}