Estoy tratando de encontrar la suma de cada fila de una matriz de matrices en JavaScript. Mi primer intento:
const rowSums = []; for (let row = 0; row < matrix.length; row++) { let currentRowSum = 0; for (let col = 0; col < matrix[row].length; col++) { currentRowSum += matrix[row][col]; } rowSums.push(currentRowSum); }Ahora estoy tratando de encontrar las sumas usando el método reduce(). No veo por qué este código no funciona:
const rowSums = matrix.reduce((rowSums, currentRow) => { return rowSums.push(currentRow.reduce((sum, currentEl) => { return sum + currentEl; }, 0)) }, []); Puede usar esta entrada como referencia: [[4, 5, 6], [6, 5, 4], [5, 5, 5]]
No funciona porque .push(...) devuelve la nueva longitud de la matriz en lugar de la propia matriz.
Empuje los modificadores de la matriz en su lugar, por lo que, en su caso, debe devolver la misma matriz con return rowSums .
const matrix = [[4, 5, 6], [6, 5, 4], [5, 5, 5]] const rowSums = matrix.reduce((rowSums, currentRow) => { rowSums.push(currentRow.reduce((sum, currentEl) => { return sum + currentEl; }, 0)) return rowSums; }, []); console.log(rowSums)const array = [[4, 5, 6], [6, 5, 4], [5, 5, 5]] const result = array.map(subArr => { return subArr.reduce((pre, item) => pre + item, 0) }) console.log(result)