Chúng ta có thể sử dụng vòng lặp lồng nhau trong javascript không?

Chúng tôi sử dụng câu lệnh vòng lặp for của JavaScript để lặp lại một tập hợp các câu lệnh bên trong thân vòng lặp một số lần được chỉ định. Một vòng lặp for lồng nhau, như tên cho thấy, được tạo thành từ nhiều vòng lặp for, cái này lồng vào trong cái kia. Điều này cho phép chúng tôi lặp qua các cấu trúc dữ liệu đa chiều như ma trận

Vòng lặp lồng nhau trong JavaScript

Một vòng lặp for đơn giản thực hiện một số lần xác định tùy thuộc vào giá trị khởi tạo và điều kiện kết thúc. Mặt khác, một vòng lặp for lồng nhau, nằm trong một hoặc nhiều vòng lặp for bên trong một vòng lặp for bên ngoài

cú pháp

for(let i = 0 ; i < limit; i++){
   // statement
}

Điều này tạo ra một vòng lặp for đơn giản thực hiện số lần giới hạn. Điều này có nghĩa là nó thực thi các câu lệnh bên trong thân vòng lặp số lần giới hạn

Trong một vòng lặp lồng nhau, câu lệnh bên trong thân vòng lặp for lại là một vòng lặp for. Điều này làm cho vòng lặp for bên trong thực thi xuyên suốt , cho mỗi lần lặp của vòng lặp for bên ngoài

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}

Vòng lặp bên trong trong ví dụ này chạy giới hạn số lần cho mỗi lần lặp của vòng lặp bên ngoài. Vì vậy, tổng cộng, vòng lặp chạy giới hạn x số lần giới hạn

Giá trị khởi tạo, điều kiện kết thúc cũng như cập nhật biến vòng lặp cho cả hai vòng lặp là độc lập với nhau

Hãy xem hoạt động của vòng lặp for lồng nhau với một ví dụ

ví dụ 1

Ở đây chúng ta sẽ tạo một ma trận hai chiều của "#" bằng cách sử dụng các vòng lặp for lồng nhau

Hãy nhìn vào mã cho cùng

The nested for loop in JavaScript

Enter number of rows and columns to create matrix

Rows :

Columns :



Trong đoạn mã trên, chúng tôi đang lấy đầu vào cho số lượng hàng và cột, sau đó sử dụng vòng lặp lồng nhau để tạo ma trận đã chỉ định. Lưu ý rằng điều kiện kết thúc của vòng lặp bên ngoài quyết định số lượng hàng trong ma trận và của vòng lặp bên trong xác định số lượng cột

Các tham số (giá trị khởi tạo, điều kiện kết thúc, cập nhật) của vòng lặp có thể được điều chỉnh để sử dụng các vòng lặp lồng nhau để thực hiện hầu hết mọi loại truyền tải lồng nhau

Hãy cho chúng tôi thấy việc sử dụng các vòng lặp lồng nhau để in một kim tự tháp

ví dụ 2

Ở đây chúng ta sẽ tạo một kim tự tháp bằng ký hiệu * và chiều cao do người dùng cung cấp. Hãy nhìn vào mã cho cùng

Trong đoạn mã trên, như có thể nhìn thấy trong đầu ra, khi thay đổi các tham số vòng lặp, chúng ta có thể hình dung nhiều mẫu truyền tải khác nhau

Lưu ý rằng vòng lặp bên ngoài (vòng 1) trong chương trình quyết định chiều cao của kim tự tháp. Vòng lặp bên trong đầu tiên (vòng lặp 2) quyết định số lượng ký tự khoảng trắng ở đầu mỗi hàng. Vòng lặp bên trong thứ hai (vòng lặp 3) in nhiều ký tự * bằng chiều cao của kim tự tháp trong lần lặp hiện tại

Các vòng lặp lồng nhau là một mẫu mã hóa cho phép bạn thực hiện mã lặp bên trong vòng lặp đầu tiên. Bạn có thể có một vòng lặp

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
7 thông thường như thế này

for (let i = 0; i < 2; i++) {
  console.log("- First level loop");
}

Bạn có thể tạo một vòng lặp cấp hai chạy bên trong vòng lặp cấp một bằng cách tạo một vòng lặp

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
7 khác bên trong vòng lặp đầu tiên như sau

for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}

Đoạn mã trên sẽ tạo ra đầu ra sau

- First level loop
-- Second level loop
-- Second level loop
-- Second level loop
-- Second level loop
- First level loop
-- Second level loop
-- Second level loop
-- Second level loop
-- Second level loop
- First level loop
-- Second level loop
-- Second level loop
-- Second level loop
-- Second level loop

Như bạn có thể thấy trong mẫu đầu ra ở trên, vòng lặp

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
7 cấp hai được thực thi cho mỗi
for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}
2 cấp một. Các biến
for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}
3 và
for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}
4 là các chỉ số của các phần tử ma trận được sử dụng phổ biến trong toán học

Các vòng lặp lồng nhau có thể được thực hiện bên trong vòng lặp

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
7 hoặc vòng lặp
for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}
6, mặc dù vòng lặp
for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
7 phổ biến hơn

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
0

Bạn cũng có thể tạo nhiều hơn hai cấp vòng lặp lồng nhau, nhưng điều này không được khuyến khích vì nó sẽ gây nhầm lẫn cho cả những nhà phát triển dày dạn kinh nghiệm

Lặp qua một mảng nhiều chiều với các vòng lặp lồng nhau

Các vòng lặp lồng nhau cũng có thể được sử dụng để lặp qua mảng hai chiều. Giả sử bạn có một mảng chứa ba mảng lồng nhau như sau

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
1

Nếu bạn tạo một vòng lặp đơn, bạn sẽ lặp qua mảng bên ngoài và ghi nhật ký các mảng lồng nhau như sau

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
2

Đầu ra sẽ được như hình dưới đây

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
3

Nếu bạn muốn ghi nhật ký từng phần tử bên trong các mảng lồng nhau, bạn cần lặp qua các mảng lồng nhau bằng cách sử dụng

for (let i = 0; i <= 2; i++) {
  console.log("- First level loop");
  for (let j = 0; j <= 3; j++) {
    console.log("-- Second level loop");
  }
}
8 cho điều kiện của vòng lặp

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
5

Đầu ra sẽ như sau

for(let i = 0 ; i < limit; i++){
   for(let j = 0 ; j < limit; j++){
      // statement
   }
   // statement for outer loop
}
6

Mẫu vòng lặp lồng nhau hơi phức tạp và ngay cả những nhà phát triển dày dạn kinh nghiệm cũng có thể nhầm lẫn với nó. Để hiểu mã của bạn làm gì, trước tiên bạn cần phá vỡ mô hình và trực quan hóa từng mã vòng lặp. Ví dụ: trước tiên bạn có thể ghi đầu ra của vòng lặp cấp một

Tại sao chúng ta sử dụng vòng lặp for lồng nhau trong JavaScript?

Điều này có nghĩa là nó thực hiện các câu lệnh bên trong số lần giới hạn thân vòng lặp . Trong một vòng lặp lồng nhau, câu lệnh bên trong thân vòng lặp for lại là một vòng lặp for. Điều này làm cho vòng lặp for bên trong thực thi xuyên suốt , cho mỗi lần lặp của vòng lặp for bên ngoài.

Vòng lặp for có lồng vào nhau được không?

Bạn có thể chạy đồng thời hai vòng lặp for trong JavaScript không?

TL;DR. Có, trong phần trình khởi tạo và vòng lặp (không phải điều kiện), có dấu phẩy .

Tôi có thể sử dụng vòng lặp while bên trong vòng lặp JavaScript không?

While chỉ lặp lại câu lệnh tiếp theo . Nếu bạn cần nó lặp lại nhiều hơn, bạn phải sử dụng câu lệnh ghép (khối câu lệnh) bằng cách sử dụng dấu ngoặc nhọn. Ở đây, vòng lặp for sẽ chạy một lần cho mỗi hàng; .