搜索
首页web前端js教程我如何尝试理解 JavaScript 中的嵌套 For 循环内部

本指南包含哪些内容?

这是一个基本指南,我试图提供 JavaScript 中嵌套“for 循环”的逐步解释。通过编写一个程序来详细分解循环的逻辑和迭代,该程序在浏览器控制台上打印一个实心方形图案。我将解释循环内部发生的事情以及嵌套循环内部的迭代及其工作顺序。

指南是为谁而设?

本指南面向绝对初学者,他们学习了基本的 JavaScript 基础知识,或者如果您对“for 循环”的工作顺序感到困惑。

先决条件:基本 JavaScript、数据类型(字符串、数字)、运算符(=、、、=)和 For 循环。

本文最初发布于 Webdevstack.hashnode.dev

介绍

打印实心方形图案是初学者级别的挑战。该挑战涉及编写一个程序,使用给定的字符将一个实心正方形的图案打印到控制台。在本指南中,我们将使用 for 循环逐步编写程序,以了解循环的工作原理,详细分解每个步骤,了解 for 循环开始工作时内部发生的情况。

了解问题

以 4 × 4 字符网格大小可视化由任何字符(例如 #)组成的实心正方形图案。这意味着四行四个字符构建 4 x 4 大小(列和行)的实心正方形。这是它在控制台上的外观。

How I tried to understand inside a Nested For Loop in JavaScript

有必要理解模式的顺序。每个新字符有 4 个字符(作为列数),构成一行。我们必须在每个新行中重复此设置 4 次才能打印我们的特定图案。

开始基础

首先,让我们从声明变量来存储一些值开始。第一个变量是 size,它存储计算模式所需的数字 4。第二个是result,它被分配一个空字符串来存储最终的输出。由于它将保存一个字符串值,因此将分配一个空字符串作为结果的初始值。 (如果不存储任何空字符串,您可以检查最后的输出,它返回什么)

let size = 4;
let result = "";

(不初始化变量也是可以的,但是使用变量是为了更好的维护。另外,除了for循环之外,程序还可以使用while循环或其他方法来编写,但这不是我们的目标本指南)

例如,让我们编写基本的“for 循环”,通过将其分解为小步骤来理解循环。清楚地了解基础知识将使我们的下一步更容易考虑。

let size = 4;
let result = "";

了解基本设置

  • 变量设置

    大小= 4; - 循环迭代的次数。

    结果=“”; - 空字符串来存储最终输出。

  • 循环初始化:count = 0;设置“For Loop”的起始值。

  • 循环调节:计数

  • 循环体:结果 = "#";在每次 for 循环迭代的结果中附加“#”字符。

  • 更新循环变量:count;每次迭代结束时将计数加 1。

    计数 → 计数 = 计数 1

    递增是必要的,否则循环将无限运行。

追加:在现有值的末尾添加新值。例如,让text =“Hello”;如果我将另一个值连接到文本变量,例如 text = “World”;它将把字符串“World”附加到其现有值“Hello”上,从而产生输出“HelloWorld”。文本=“世界”→文本=文本“世界”→文本=“你好”“世界”→文本=“HelloWorld”

每次迭代会发生什么?

大小= 4;结果=“”;

迭代 1:

  • 计数 = 0; → 计数

  • 结果=“#”;→结果=结果“#”;→结果=“““#”→结果=“#”;

  • 计数 → 计数 = 计数 1 → 计数 = 0 1 → 计数 = 1

迭代 2:

  • 计数 = 1; → 计数

  • 结果=“#”;→结果=结果“#”;→结果=“#““#”→结果=“##”;

  • 计数 → 计数 = 计数 1 → 计数 = 1 1 → 计数 = 2

迭代 3:

  • 计数 = 2; → 2

  • 结果=“#”; → 结果是“###”

  • 计数 → 计数为 3

迭代 4:

  • 计数 = 3; → 3

  • 结果=“#”; → 结果是“####”

  • 数 → 数为 4

迭代结束:

  • 计数 = 4; → 4

console.log(结果);将结果的最终值打印到控制台。最终值是最后更新的值。在这种情况下,输出:####

筑巢 - 模式构建

到目前为止,我们已经使用 For 循环在一行(我们称之为行)中打印了四个“#”字符(每个字符可以视为列)。我们总共需要 4 行相似的字符集 #### 来构建正方形的维度。 ✅

我们可以通过将循环放入新循环中来重复整个循环四次来实现此目的。这个新循环创建每组 #### 字符四次。这就形成了一个嵌套循环,即一个循环嵌套在另一个循环中,一个内循环和一个外循环。

?每次外层循环运行时,它都会执行内层循环,内层循环也迭代 4 次。这意味着外循环的四次迭代将执行内循环四次,从而导致内循环总共迭代 16 次。如下所示。

How I tried to understand inside a Nested For Loop in JavaScript

让我们根据自己的想法更改代码,并相应地更新循环的变量名称。内部循环的名称是“col”,因为它通过列计数放置字符,而外部循环的名称是“row”。

let size = 4;
let result = "";

两个循环都会不断迭代,直到条件行

现在,如果我们运行我们的代码,输出将是这样的:################,这不是我们想要的输出。发生这种情况是因为我们没有为每一行插入一个新行。

  • 作为负责每个集合 #### 的内部循环,我们将在内部循环之后但仍在外部循环体内的同一变量 result 中附加新行字符“n”: result = "n ”;
for(let count = 0; count 



  • 对于每一行,内部循环都会将“#”字符附加到结果中。添加完字符并退出后,外循环会将“n”附加到结果变量以移动到新行。

制动嵌套迭代

➿ 外循环

迭代1:row = 0 → row

--外循环体

--- 内循环

--- 迭代1: col = 0: result = “#”, 所以结果变成“#”, col

--- 迭代2:col = 1:结果=“#”,因此结果变为“##”,col

--- 迭代3:col = 2:结果=“#”,因此结果变为“###”,col

--- 迭代4:col = 3:结果=“#”,所以结果变成“####”,col

--- 内循环出口

--result = "n": 添加换行符,因此 result 变为“####n”。

行 → 将行的值增加到 1

迭代2:row = 1 → row

--外循环体

--- 内循环

--- 迭代1:col = 0:结果=“#”,因此结果变为“####n#”,col

--- 迭代2: col = 1: result = “#”, 所以结果变成“####n##”, col

--- Iteration3: col = 2: result = “#”, 所以 result 变成 "####n###", col

--- 迭代4: col = 3: result = “#”, 所以结果变成“####n####”, col

--- 内循环出口

-- result = "n": 添加换行符,因此 result 变为“####n####n”。

行 → 将行的值增加到 2

后续过程重复

-迭代3:行= 2 → 2

-迭代4:行= 3 → 3

-结束迭代:row = 2 → 2

➿ 外环出口

最后一行console.log(结果);打印最终值。

“####n####n####n####n”是结果变量最后存储的最终值。 “n”将执行行制动,同时将输出打印到控制台。

let size = 4;
let result = "";

结论

执行迭代和显示多维数据结构等复杂任务通常涉及使用嵌套循环。到目前为止,我们已经探索了基本程序的嵌套循环,为基本理解奠定了基础。我们已经分解了基本循环和嵌套循环的迭代步骤。我建议尝试编写该程序的不同变体,例如允许用户输入图案的大小和字符、创建矩形图案或使用不同的方法实现相同的程序,以进行更多练习。

console.log(“感谢您的阅读”);

以上是我如何尝试理解 JavaScript 中的嵌套 For 循环内部的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript数据类型:浏览器和nodejs之间是否有区别?JavaScript数据类型:浏览器和nodejs之间是否有区别?May 14, 2025 am 12:15 AM

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScript评论:使用//和 / * * / * / * /JavaScript评论:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。