首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >2D Array - DS嵌套for循环javascript不返回

2D Array - DS嵌套for循环javascript不返回
EN

Stack Overflow用户
提问于 2018-08-24 21:15:58
回答 1查看 197关注 0票数 -1

我似乎不明白为什么函数在第一个for循环之后返回"sum“,而不是在函数的末尾。

代码语言:javascript
复制
var a = [
  [1, 1, 1, 0, 0, 0],
  [0, 1, 0, 0, 0, 0],
  [1, 1, 1, 0, 0, 0],
  [0, 0, 2, 4, 4, 0],
  [0, 0, 0, 2, 0, 0],
  [0, 0, 1, 2, 4, 0]
];

function hourglassSum(arr) {
  var sum = 0;
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr[i].length; j++) {
      var sumTemp = arr[i][j] + arr[i][j + 1] + arr[i][j + 2] + arr[i + 1][j + 1] + arr[i + 2][j] + arr[i + 2][j + 1] + arr[i + 2][j + 2];
      if (!isNaN(sumTemp) && sumTemp > sum) {
        sum = sumTemp;
      }
    }
    document.write('Sum: ' + sum + '<br/>');
  }
  document.write('Sum: ' + sum + '<br/>');
}

hourglassSum(a);

EN

回答 1

Stack Overflow用户

发布于 2018-08-24 21:37:49

您的问题是,在调用时,您试图访问大于数组大小的数组索引:

代码语言:javascript
复制
var sumTemp = arr[i][j] + arr[i][j + 1] + arr[i][j + 2] + arr[i + 1][j + 1] + arr[i + 2][j] + arr[i + 2][j + 1] + arr[i + 2][j + 2];

因为您循环到数组的大小,然后调用j+1或j+2,它现在大于数组的大小并导致错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52005347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档