var largestLocal = function (grid) { let rowLen = grid.length, colLen = grid[0].length console.log(rowLen, colLen) let mainArr = [] for (let init = 0; rowLen - init > 2; init++) { let childArr = [] let tem = 0 for (let col = tem; rowLen - col > 2; col++) { let container = [] for (let sub = init; sub < 3; sub++) { let sumTemp = grid[sub].slice(col, 3); console.log("sumTemp at ", sub, " is ", sumTemp) container.push(...sumTemp) console.log("container at ", sub, " is ", container) } let max = Math.max(...container); console.log("max at ", col, " is ", max) childArr.push(max) console.log("childArr at ", col, " is ", childArr) } mainArr.push([...childArr]) } return mainArr };