1. 程式人生 > 其它 >JS——迴圈

JS——迴圈

For迴圈

for (語句 1; 語句 2; 語句 3) {
     要執行的程式碼塊
}

語句1,在迴圈(程式碼塊)開始之前執行。

語句2,定義執行迴圈(程式碼塊)的條件。

語句3,會在迴圈(程式碼塊)每次被執行後執行。

//例句
for (i = 0; i < 5; i++) {
     text += "數字是 " + i + "<br>";
}

//語句 1 在迴圈開始之前設定了一個變數(var i = 0)。

//語句 2 定義執行迴圈的條件(i 必須小於 5)。

//語句 3 會在程式碼塊每次執行之後對值進行遞增(i++)。
var i = 2;
var len = cars.length;
var text = "";
for (; i < len; i++) { 
    text += cars[i] + "<br>";
}

For/In迴圈

var person = {fname:"Bill", lname:"Gates", age:62}; 

var text = "";
var x;
for (x in person) {
    text += person[x];
}
//for in 迴圈遍歷 person 物件
//每次迭代返回一個鍵 (x)
//鍵用於訪問鍵的值
//鍵的值為 person[x]

也可以遍歷陣列的屬性

但如果索引順序很重要,請不要再陣列上使用for in,索引順序依賴於實現。

const numbers = [45, 4, 9, 16, 25];

let txt = "";
for (let x in numbers) {
  txt += numbers[x];
}

For Of

語句迴圈遍歷可迭代物件的值,例如陣列、字串、對映、節點列表等。

for (variable of iterable) {
  // code block to be executed
}
//variable - 對於每次迭代,下一個屬性的值都會分配給變數。變數可以用 const、let 或 var 宣告。

//iterable - 具有可迭代屬性的物件。

遍歷陣列:

const cars = ["BMW", "Volvo", "Mini"];

let text = "";
for (let x of cars) {
  text += x;
}

遍歷字串:

let language = "JavaScript";

let text = "";
for (let x of language) {
text += x;
}

Array.forEach

為每個陣列元素呼叫一次函式(回撥函式)

const numbers = [45, 4, 9, 16, 25];

let txt = "";
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt += value;
}

While迴圈

就和py中的while True一樣。只要條件為true,那麼將會一直執行。

while (i < 10) {
    text += "數字是 " + i;
    i++;
}

Do/While迴圈

在檢查條件是否為真值錢,這種迴圈會執行一次程式碼塊,然後只要條件為真就會重複迴圈

do {
    text += "The number is " + i;
    i++;
 }
while (i < 10);