Agradecería si alguien pudiera explicarme este error.
Empecé a aprender programación y me encontré con esta tarea:
Su tarea es crear una tabla de multiplicar NxN, del tamaño proporcionado en el parámetro. Por ejemplo, cuando el tamaño dado es 3, el valor devuelto debe ser [[1,2,3],[2,4,6],[3,6,9]].
Se me ocurrió esta solución.
const multiplicationTable = (size) => { // creating the correct size of the multiplication table let array = []; array.length = size; let array2 = []; array2.length = size; for (let m = 0; m < size; m++) { array[m] = array2; } // assigning correct numbers for (let i = 0; i < size; i++) { let base = i + 1; for (let j = 0; j < size; j++) { let factor = j + 1; array[i][j] = factor * base; } } return array; }Sé que podría haber una solución más adecuada, pero me gustaría preguntar por qué esta en particular no funciona.
El problema parece estar en la variable "base". Mi intención era establecer el valor en 1, luego mantenerlo durante el siguiente bucle anidado, luego aumentarlo en uno y mantenerlo nuevamente durante la iteración de otro bucle for anidado.
El problema es que cuando ejecuto el código, no contiene el número 1, pero ya se establece en el último número. Así que mi resultado al llamar a la función con un número 3 es igual a --> [[ 3, 6, 9 ], [ 3, 6, 9 ], [ 3, 6, 9 ] ].
Gracias por cualquier explicación, porque por ahora, no puedo entenderlo. :)