trying to solve this:
Create a function that receives a (square) matrix and calculates the sum of both diagonals (main and secondary)
Matrix = array of n
length whose elements are n
length arrays of integers.
3x3 example:
diagonals( [
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
] );
returns -> 30 // 1 + 5 + 9 + 3 + 5 + 7
i’m trying first with the primary diagonal and it returns ‘01,2,34,5,67,8,9’
here my code:
function sum(matrix) {
var primary = 0;
for (var i = 0; i < matrix.length; i++)
{primary = primary + matrix[i,i];}
return primary;
}
The problem lies here.
Inside property access brackets matrix[ ...here...]
is an expression.
For example:
var array = [1, 2, 3, 4, 5, 6];
var value = array[5 - 2]; // array[3]
// value === array[3] === 4
So when you try to access matrix[i,i]
it will be treated as a serie of comma separated operands and it will evaluate to the final one.
If you want to access a value in a matrix (two dimensional array), you have to access the values like so:
primary = primary + matrix[i][i];
Thanks a lot i will try again.
El El mar, 11 ago 2020 a las 14:31, Maciek Sitkowski via The freeCodeCamp Forum <freecodecamp@discoursemail.com> escribió: