const arrList = [ ["100", "200", "300"], ["400", "500", "600"], ["700", "800", "900"], ]; // for 循环的初始值,控制着起始位置,约束条件控制着结束位置 for (let i = 0; i < 3; i++) { for (let j = i; j < 3; j++) { console.log(arrList[i][j]); } } console.log("---------------------"); for (let i = 0; i < 3; i++) { for (let j = 0; j <= i; j++) { console.log(arrList[i][j]); } }
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
["100", "200", "300"],
["400", "500", "600"],
["700", "800", "900"],
const arrList = [ ["100", "200", "300"], ["400", "500", "600"], ["700", "800", "900"], ]; // i表示行,j表示列 // 外层的for循环,决定第一层遍历的大纲 // 内层的for循环,收到外层for循环的影响,说明内存for循环遍历的数量,受到影响 for (let j = 0; j < 3; j++) { for (let i = 0; i <= j; i++) { console.log(arrList[i][j]); } } console.log("------------------------------------------"); // 和上面的进行对比以为,只是改变了将arrList[i][j]变成了arrList[j][i],原来以列进行遍历的大纲,变成了以行进行遍历的大纲 // 所以说,一开始我们就是要将这个i表示行,j表示列,给定死,然后进行遍历,就会有大纲的思维 // 事实上,你发现这个i和j的表示没有太大意义,仔细观察,如果 外层for循环的变量,对应二维数组的第一个位置,那么就是以行进行遍历的,反之如果外层for循环,对应二维数组的第二个位置,就是以列进行遍历的 for (let j = 0; j < 3; j++) { for (let i = 0; i <= j; i++) { console.log(arrList[j][i]); } } console.log('==========================================') for (let i = 0; i < 3; i++) { for (let j = 0; j <= i; j++) { console.log(arrList[i][j]); } } console.log('---------------------------------------------')
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战