Hola a todos y gracias de antemano por su ayuda.
Entonces me gustaría encontrar el número más alto en una matriz bidimensional. A continuación se muestra el código:
const matrix = [ [2, 56, 10], [20, 34, 10], [23, 144, 26] ]; let maximum = matrix[0][0]; for (var row = 0; row < matrix.length; row++) { for (var col = 0; col < matrix.length; col++) { if (matrix[row][col] > maximum) { maximum = matrix[row][col]; }; }; }; document.write(' -- ', maximum);Aquí está mi problema . ¿Podría ayudarme a entender por qué cuando tengo más números en la matriz no puedo ver el número más alto? Encuentre un ejemplo a continuación):
const matrix = [ [2, 56, 10, 14, 422, 3242], [20, 34, 55, 100, 33, 422], [23, 12, 14, 26, 203, 233] ]; let maximum = matrix[0][0]; for (var row = 0; row < matrix.length; row++) { for (var col = 0; col < matrix.length; col++) { if (matrix[row][col] > maximum) { maximum = matrix[row][col]; }; }; }; document.write(' -- ', maximum);row < matrix.length prueba lo correcto. col < matrix.length no: debe reemplazarlo con col < matrix[row].length .
Sin embargo, hay una manera más fácil, utilizando algunas de las funciones de JavaScript más nuevas:
const matrix = [[2,56,10,14,422,3242],[20,34,55,100,33,422],[23,12,14,26,203,233]]; const maximum = Math.max(...matrix.flat()) console.log(maximum); matrix.flat() la matriz bidimensional en una dimensión, ... la sintaxis colocará cada valor de la matriz unidimensional como su propio argumento en Math.max , que luego encuentra el más grande.
Hay un pequeño error. Cuando itere la columna, asegúrese de iterar el número de columnas.
matrix.length le da el número de filas y matrix[i].length le da el número de columnas.
const matrix = [[2,56,10,14,422,3242],[20,34,55,100,33,422],[23,12,14,26,203,233]]; let maximum = matrix[0][0]; for(var row = 0; row < matrix.length; row++){ for(var col = 0; col < matrix[row].length; col++){ if(matrix[row][col] > maximum){ maximum = matrix[row][col]; }; }; }; document.write(' -- ', maximum);Está tomando matrix.length para no. de columna también, pero te da no. de filas, es decir, 3, pero en su caso, pero no. de columna es 6 . por eso solo busca 3 numeros
const matrix = [[2,56,10,14,422,3242],[20,34,55,100,33,422],[23,12,14,26,203,233]]; let maximum = matrix[0][0]; for(var row = 0; row < matrix.length; row++){ for(var col = 0; col < matrix[0].length; col++){ <--- Correction if(matrix[row][col] > maximum){ maximum = matrix[row][col]; }; }; }; document.write(' -- ', maximum);