[英]Cannot read property -1 of Undefined
在hackerrank.com上做對角差分代碼挑戰,我在代碼末尾收到了這個錯誤,問題是,我不知道-1來自哪里......
function diagonalDifference(arr) {
// Write your code here
var val1 = 0, val2 = 0;
for(let i = 0; i <= 2; i++) {
for(let j = i; j < arr.length; j++) {
val1 += arr[i][j];
i++;
}
}
for(let i = 0; i <= 2; i++) {
for(let j = 2; j => 0; j--) {
console.log(arr[i][j])
val2 += arr[i][j];
i++;
}
}
val1 + val2 < 0 ? -(val1 + val2) : val1 + val2;
}
錯誤在於 val2 += arr[i][j],但由於 j 的最小值為 0,那么 -1 可能來自哪里? 這也是錯誤:
console.log(arr[i][j])
^
TypeError: Cannot read property '-1' of undefined
問題是運算符在這一行中顛倒了:
for(let j = 2; j => 0; j--) {
它應該是:
for(let j = 2; j >= 0; j--) {
(也就是說,=< 應該是 <=。)
此外,在內部循環中有 i++ 會導致外部循環只運行一次。
function diagonalDifference(arr) { // Write your code here let val1 = 0, val2 = 0; const arrLength = arr.length let x = 0; for(let y = 0; y < arrLength; y++) { val1 += arr[y][x] x++ } let x2 = arrLength - 1; for(let y2 = 0; y2 < arrLength; y2++) { val2 += arr[y2][x2] x2-- } return Math.abs(val1 - val2) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.