首页 > 解决方案 > 理解 for 循环

问题描述

我想添加每两个值并从我的函数返回总和的最大值。以下代码完美运行。最大和为14 => (3+4,3+4)

function glassSum(arr) {
  let maxSum = 0
  for (let i = 0; i <= 2; i++) {
    for (let j = 0; j <= 2; j++) {
      const top = arr[i][j] + arr[i][j+1]
      const bottom = arr[i+1][j] + arr[i+1][j+1]
      const total = top + bottom
      if (total > maxSum) maxSum = total
    }
  }
  return maxSum
}
const a = [
  [1,2,3,4],
  [1,2,3,4],
  [1,2,3,4],
  [1,2,3,4]
]
glassSum(a)

但事实上我没有说到点子上是为什么我需要循环直到 3 个项目?虽然我希望它可以使用,i<2,j<2但它不起作用。仅当我有i<3,j<3. 任何人都可以澄清这个概念吗?

标签: javascriptarrays

解决方案


让我们在这里进行迭代。我们都知道数组索引从 0 开始。

为了j < 3

第1迭代:j = 0[ j < 3 = true ]
第 2迭代:j = 1[ j < 3 = true ]第
3迭代:j = 2[ j < 3 = true ]第
4迭代:j = 3[ j < 3 = false ] - 循环将退出

因此,您需要j < 33 次迭代。


推荐阅读