largestGridProduct Problem

Tell us what’s happening:
I am trying to make 3 different cases to determine what the max of 4 elements multiplied by each other could be. First I am trying to iterate through the rows and get the max of that, Then columns and lastly diagonally. I pushed the 3 values into an array to see if all 3 cases were calculating different values to check for mistakes. Then I returned the max of that array. Still getting the wrong answer, can you inspect my code? Looking for feedback on if I may have constructed the for loops incorrectly. Thanks.

Your code so far

function largestGridProduct(arr) {
    //initial variable
    let maxHorizontal = 0;
    let maxVertical = 0;
    let maxDiag = 0;
    let arrOfMax = []
    //get the max in the horizontal direction 
    for (let i = 0; i < arr.length; i++) {
        for (let j = 0; j + 3 < arr.length; j++) {
            let temp = arr[i][j] * arr[i][j + 1] * arr[i][j + 2] * arr[i][j + 3]

            if (temp > maxHorizontal) {
                maxHorizontal = temp
            }

        }
    }
    //keep track of the maxes in different directions
    arrOfMax.push(maxHorizontal)

    //get the max in the vertical direction 
    for (let i = 0; i + 3 < arr.length; i++) {
        for (let j = 0; j < arr.length; j++) {
            let temp = arr[i][j] * arr[i + 1][j] * arr[i + 2][j] * arr[i + 3][j]

            if (temp > maxVertical) {
                maxVertical = temp
            }

        }
    }

    arrOfMax.push(maxVertical)

    //get the max of the diagonals
    for (let i = 0; i + 3 < arr.length; i++) {
        for (let j = 0; j + 3 < arr.length; j++) {
            let temp = arr[i][j] * arr[i + 1][j + 1] * arr[i + 2][j + 2] * arr[i + 3][j + 3]

            if (temp > maxDiag) {
                maxDiag = temp
            }

        }
    }

    arrOfMax.push(maxDiag)
    var max = Math.max(...arrOfMax);

    // Good luck!
    return max
}

// Only change code above this line
const grid = [
    [8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],
    [49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0],
    [81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65],
    [52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],
    [22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80],
    [24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50],
    [32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70],
    [67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21],
    [24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72],
    [21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],
    [78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],
    [16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57],
    [86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],
    [19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40],
    [4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],
    [88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69],
    [4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36],
    [20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16],
    [20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54],
    [1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48]
];

const testGrid = [
    [40, 17, 81, 18, 57],
    [74, 4, 36, 16, 29],
    [36, 42, 69, 73, 45],
    [51, 54, 69, 16, 92],
    [7, 97, 57, 32, 16]
];



console.log(largestGridProduct(testGrid));

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36.

Challenge: Problem 11: Largest product in a grid

Link to the challenge:
https://www.freecodecamp.org/learn/coding-interview-prep/project-euler/problem-11-largest-product-in-a-grid

Couple remarks:

  1. Diagonal can also go from bottom left to top right - something that you’ve missed
  2. You don’t really need maxHorizontal, maxVertical etc… Just one max would be enough
  3. Think if you can calculate product in every direction in one double loop, instead of doing 3 extremely similar loops