我在尝试访问矩阵中的数据时遇到此错误。我也试过使用两个for
循环,但我得到了完全相同的错误
function matrixElementsSum(matrix) {
var answer = 0;
for(var i = 0 ; i < matrix[0].length; i++){ //gets horizontal axis
var j = 0;
while(matrix[j][i] !== 0 && j < matrix.length){
answer += matrix[j][i];
j++;
}
}
return answer;
}
console.log(matrixElementsSum(
[[1,1,1,0],
[0,5,0,1],
[2,1,3,10]]));
错误是:
Deferred exception: matrix[j] is undefined
我不知道自己做错了什么。我该如何解决这个问题?
答案 0 :(得分:0)
function matrixElementsSum(matrix) {
var answer = 0;
for (var i = 0; i < matrix.length; i++) { //gets horizontal axis
for (var j = 0; j < matrix[i].length; j++) {
answer += matrix[i][j];
}
}
return answer;
}
console.log(matrixElementsSum(
[
[1, 1, 1, 0],
[0, 5, 0, 1],
[2, 1, 3, 10]
]));
答案 1 :(得分:0)
for...of
循环使其更容易(在Internet Explorer中不受支持):
function matrixElementsSum(matrix)
{
var answer = 0;
for (var array of matrix)
for (var number of array)
answer += number;
return answer;
}
console.log( matrixElementsSum( [[1,1,1,0], [0,5,0,1], [2,1,3,10]] ) );
&#13;
对于Internet Explorer,可以在TypeScript Playground
上转换for循环版本