javascript - 理解 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
. 任何人都可以澄清这个概念吗?
解决方案
让我们在这里进行迭代。我们都知道数组索引从 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 < 3
3 次迭代。
推荐阅读
- c# - 我的属性 knowntype 不支持错误操作
- hashmap - Vaadin 14 错误:无法解析构造函数 com.vaadin.flow.data.renderer.ComponentRenderer<>
- google-chrome-extension - 使用 chrome.storage.sync 创建动态变量名称以存储/检索信息
- javascript - 如何强制重新排序jsTree?
- javascript - 如何正确向 Shaka 播放器提供 MPEG-DASH 清单?
- google-sheets - 在 Google 查询语言中使用今天的年/月/周作为参考
- sorting - 快速排序两个 N 大小的相同值数组,通过比较一个到另一个
- javascript - JavsScript 不断减去 PHP/MySQL 日期格式
- flutter - 颤动 - 用卡片上的文字绘制右上角的三角形
- python-3.x - BeautifulSoup:识别网页对象的抓取方法