Tengo una matriz con múltiples matrices dentro. Me gustaría multiplicar el contenido de cada matriz.
Aquí está mi código: actualmente no obtengo nada en la consola. La salida deseada es de 3 números, el resultado de la multiplicación de las tres matrices
var arr = [ [1, 2, 3], [3, 4], [7, 8, 9] ] var mult = 1 for (i = 0; i < arr.length; i++) { for (j = 0; j < arr.length; j++) { mult *= arr[i][j] } console.log(mult) }Podría mapear el resultado de la multiplicación anidada.
const multiply = (a, b) => a * b, array = [[1, 2, 3], [3, 4], [7, 8, 9]], result = array.map(a => a.reduce(multiply, 1)); console.log(result);Debe iterar sobre las filas. Entonces necesitas cambiar el bucle interno en esto:
for (j = 0; j < arr[i].length; j++)
const array = [ [1, 2, 3], [3, 4], [7, 8, 9] ]; for (i = 0; i < array.length; i++) { let result = 1; for (j = 0; j < array[i].length; j++) { result *= array[i][j] } console.log(result); }Puede probar esto, es más fácil usar el mapa y reducir las funciones. arr.map(array => array.reduce(arrayMult, 1)) es la multiplicación de cada matriz interna, como [ 6, 12, 504 ] , y la última reducción es para multiplicar estos valores.
var arr = [[1, 2, 3],[3, 4],[7, 8, 9]]; const arrayMult = (prev, curr) => prev * curr; const total = arr.map(array => array.reduce(arrayMult, 1)).reduce(arrayMult, 1);