To calculate the sum of elements in each column of the two-dimensional array?

Given an array of 3x5, you need to calculate the sum in each column. Tried it this way but I realized that so I'm just trying to calculate the total sum of the array, and moreover, not correct. Please tell me how to calculate exactly the amount in each column a two-dimensional array?
mass_two function() {
 var n = 3,
 m = 5;
 var mas = [];
 for (var i = 0; i < m; i++) {
 mas[i] = [];
 for (var j = 0; j < n; j++) {
 mas[i][j] = Math.floor(Math.random() * 30) + 1;
 sum = 0;
 sum += mas[i][j];

}
}


console.log(mas);
console.log(sum);

 }
June 7th 19 at 14:56
3 answers
June 7th 19 at 14:58
It is better if the function would be "not aware" of the size of the array, so versatile.
There is not check that the array is two-dimensional elements that all rows have equal length. And it would be necessary..

Take the first (zero) row and I walk around in the rest, add the values from the corresponding columns:
function sum2d(arr) {
 var row, col, sum = arr[0].slice();
 for( row = 1; row < arr.length; row++) {
 for( col = 0; col < sum.length; col++) {
 sum[col] += arr[row][col];
}
}
 return sum;
}

sum2d([
[1,2,3],
[8,9,0],
])
// [9,11,3]
June 7th 19 at 15:00
The type of this?
June 7th 19 at 15:02
Here you amount and along and across, where you have columns and rows - sort it out yourself:
var
 rows = 3,
 cols = 5,
 array = [...Array(rows)].map(() => [...Array(cols)].map(() => Math.random() * 10 | 0))

var
 sumRows = array.map(n => n.reduce((sum, m) => sum + m, 0)),
 sumCols = array[0].map((n, i) => array.reduce((sum, m) => sum + m[i], 0))

Find more questions by tags JavaScript