Home > Enterprise >  Get sum of each row elements in an array of arrays JS
Get sum of each row elements in an array of arrays JS

Time:08-07

I am trying to find the sum of each row of an array of arrays in JavaScript. My first attempt:

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);
}

Now I am trying to find the sums using the reduce() method. I don't see why this code doesn't work:

const rowSums = matrix.reduce((rowSums, currentRow) => {
        return rowSums.push(currentRow.reduce((sum, currentEl) => {
            return sum   currentEl;
        }, 0))
}, []);

You can use this input for reference: [[4, 5, 6], [6, 5, 4], [5, 5, 5]]

CodePudding user response:

It does not work because .push(...) returns the new length of the array instead of the array itself.

Push modifiers the array in place, so in your case you have to then return the same array with 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)

CodePudding user response:

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)
  • Related