如何在 JavaScript 中使用嵌套 for 循环?
我们使用 JavaScript 的for循环语句来重复循环体内的语句集指定的次数。嵌套 for 循环顾名思义,是由多个 for 循环组成的,一个嵌套在另一个里面。这使我们能够遍历多维数据结构,例如矩阵。
JavaScript 中的嵌套 for 循环
简单的 for 循环根据初始化值和终止条件执行指定的次数。另一方面,嵌套 for 循环在一个外部 for 循环内包含一个或多个 for 循环。
语法
for(let i = 0 ; i < limit; i++){ // statement }
这创建了一个简单的 for 循环,它执行limit次。这意味着它执行循环体内的语句limit次。
在嵌套循环中,for 循环体内的语句又是另一个 for 循环。这会导致内部 for 循环在外部 for 循环的每次迭代中都完全执行。
for(let i = 0 ; i < limit; i++){ for(let j = 0 ; j < limit; j++){ // statement } // statement for outer loop }
在这个例子中,内部循环在外部循环的每次迭代中运行limit次。因此,总的来说,循环运行limit x limit 次。
两个循环的初始化值、终止条件以及循环变量的更新是相互独立的。
让我们看一个嵌套 for 循环的工作示例。
示例 1
在这里,我们将使用嵌套 for 循环创建一个由“#”组成的二维矩阵。
让我们看一下相应的代码。
<!DOCTYPE html> <html> <body> <h3> The nested for loop in JavaScript</h3> <p> Enter number of rows and columns to create matrix</p> <form> <label >Rows : </label> <input type = "text" id = "rows"><br><br> <label > Columns : </label> <input type = "text" id = "cols"><br><br> <input type = "button" onclick = "fun()" value = "Create Matrix"> </form> <br><br> <div id="result"></div> <script> function fun(){ var text = ""; var rows = document.getElementById("rows").value; var cols = document.getElementById("cols").value; for(let i = 0 ; i < rows; i++){ for(let j = 0 ; j < cols ; j++){ text += "#" } text += "<br>"; } document.getElementById("result").innerHTML = text; } </script> </body> </html>
在上面的代码中,我们获取行数和列数的输入,然后使用嵌套循环创建指定的矩阵。注意,外部循环的终止条件决定矩阵的行数,内部循环的终止条件决定列数。
循环的参数(初始化值、终止条件、更新)可以调整,以使用嵌套循环实现几乎任何类型的嵌套遍历。
让我们看看使用嵌套循环打印金字塔。
示例 2
在这里,我们将使用 * 符号和用户提供的的高度创建一个金字塔。让我们看一下相应的代码。
<!DOCTYPE html> <html> <body> <h3>The nested for loop in javascript</h3> <p>Enter the height of the pyramid:</p> <form> <label>Height : </label> <input type="text" id="height"><br><br> <input type="button" onclick="fun()" value="Create Pyramid"> </form> <br><br> <div id="result"></div> <script> function fun() { var text = ""; var height = document.getElementById("height").value; // loop 1 for (let i = 0; i < height; i++) { // loop 2 for (let j = 0; j < height - i; j++) { text += " " } // loop 3 for (let j = 0; j <= i; j++) { text += "*"; } text += "<br>"; } document.getElementById("result").innerHTML = text; } </script> </body> </html>
在上面的代码中,正如输出中所显示的那样,通过更改循环参数,我们可以可视化许多不同的遍历模式。
注意,程序中的外部循环(循环 1)决定金字塔的高度。第一个内部循环(循环 2)决定每行开头空格字符的数量。第二个内部循环(循环 3)打印与当前迭代中金字塔高度相同的 * 字符数量。
结论
嵌套循环是一个非常有用的结构,它用途广泛,并且经常被使用。