Tengo la tarea de escribir un programa que cree una tabla de multiplicar para la variable dada n. Los resultados deben guardarse en una matriz bidimensional. En la consola, necesito mostrar la tabla completa con el formato de datos apropiado (como se muestra a continuación). Estoy comenzando con Javascript y ya conozco solo los bucles y las matrices, aún no he aprendido las funciones, así que necesito una solución realmente básica. Así es como debería verse el resultado:
Aquí está mi código que escribí hasta ahora y no sé qué hacer a continuación:
const n = 3; const calc = [] for (let i = 1; i <= n; i++) { for (let j = 1; j <= n; j++) { calc.push(i + " * " + j + " = " + (i * j)); } console.log(calc) }Ya casi estás ahí:
calc de matriz si su objetivo es imprimir la tablarow de variables dentro del ciclo externo como una matriz vacía, [] ;calc.push , use row.push.join()calc con calc.push(row) ; no es necesario en mi opinión. const n = 3; //const calc = []; //may not be necessary for (let i = 1; i <= n; i++) { const row = []; for (let j = 1; j <= n; j++) { row.push(i + " x " + j + " = " + (i * j)); } console.log( row.join(' | ') ); //calc.push(row);//not sure if you still need this } /* OUTPUT 1 x 1 = 1 | 1 x 2 = 2 | 1 x 3 = 3 2 x 1 = 2 | 2 x 2 = 4 | 2 x 3 = 6 3 x 1 = 3 | 3 x 2 = 6 | 3 x 3 = 9 */Según el código que ha presentado, parece que aún no comprende qué es realmente una matriz 2D. De la forma en que lo ha hecho, todo está metido en una sola matriz 1d.
Puede pensar en los píxeles de una pantalla como parte de una matriz 2D. La primera matriz contiene todas las líneas horizontales. Las líneas horizontales contienen los píxeles.
Así que... concentrémonos en esa parte primero.
let result = []; for (var y=0; y<n; y++) { result.push( [] ); for (var x=0; x<n; x++) { result[y].push( (x+1) * (y+1) ); } }Primero creamos una matriz de resultados, y luego para cada fila en nuestra tabla, agregamos una matriz que contendrá las columnas, luego para cada columna en esa fila, agregamos los valores.
A continuación, simplemente pasamos por esa tabla y convertimos los valores en las ecuaciones originales. Comenzamos determinando las dimensiones de la matriz, antes de crear una tabla del mismo tamaño.
function printTable( tbl ) { let nRows = tbl.length; let nCols = tbl[0].length; for (var y=0; y<nRows; y++) { let rowStr = ''; for (var x=0; x<nCols; x++) { if (x!=0) rowStr += " | "; rowStr += `${y+1} x ${x+1} = ${tbl[y][x]}`; } console.log(rowStr); } }Juntando todo, presento el siguiente código. Sí, sé que aún no está usando funciones, pero aún puede ver los conceptos importantes. Puede cambiarlo para que se guarde la ecuación completa de cada entrada de la tabla, en lugar de solo la respuesta.
window.addEventListener('load', init, false); function init() { let result = makeMultTable(3); printTable(result); } function makeMultTable(n) { let result = []; for (var y=0; y<n; y++) { result.push( [] ); for (var x=0; x<n; x++) { result[y].push( (x+1) * (y+1) ); } } return result; } function printTable( tbl ) { let nRows = tbl.length; let nCols = tbl[0].length; for (var y=0; y<nRows; y++) { let rowStr = ''; for (var x=0; x<nCols; x++) { if (x!=0) rowStr += " | "; rowStr += `${y+1} x ${x+1} = ${tbl[y][x]}`; } console.log(rowStr); } }Multiplicación de tabla en matriz de dos dimensiones.
Nombre de la función: multiplicarNúmero
Syntex multiplicarNúmero(n)
Retazo
function multiplyNumber(n){ let table = []; let data = []; for (var i = 1; i <= n; i++){ for (var j = 1; j <= n; j++){ data.push(`${i} x ${j} = ${i * j}`); } table.push(data); // pushing data to table. data = []; //Resetting data array to store new data each time. } return table; } var result = multiplyNumber(3); console.log(result);