如何在 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)列印與當前迭代中金字塔高度相同的 * 字元數量。

結論

巢狀迴圈是一個非常有用的結構,它用途廣泛,並且經常被使用。

更新於: 2022年11月10日

11K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告