Mảng và vòng lặp javascript

Nếu muốn tính tổng của một mảng thì sử dụng reduce là rõ ràng, tuy nhiên cái giá phải trả quá lớn. Vòng lặp mới nhất từ ​​ES6 for-of cũng về áp dụng vật chất. Như vậy cứ lật vòng for kinh điển, tuy cũ mà nhanh gấp 10 lần cái for-of

Tuyển dụng Javascript không cần kinh nghiệm

Mảng và vòng lặp javascript
Mảng và vòng lặp javascript

2. Nhân bản một mảng

Khi thế giới đang tồn tại thờ tư tưởng hàm bất biến (không sửa cái đầu vào khi cho ra đầu ra ), việc sao chép một mảng đầu vào là chuyện thường ngày ở huyện

Chúng ta hãy xem kết quả tất cả các cách mà chúng ta có thể sử dụng để sao chép một mảng

  • [].concat(arr). ~366 micro giây
  • while0. ~367 micro giây
  • while1. ~469 micro giây
  • while2. ~512 micro giây
  • while3. ~1.436 micro giây

Như vậy 2 phương thức cũ như dưa mắm while4 và while5 vẫn dành chiến thắng, kiểu hoạt động trải rộng mới ES6 vẫn là top cuối

  Xóa các mảng trùng lặp trong ES6

  Tại sao API của Facebook lại bắt đầu bằng một vòng lặp for?

3. Lặp qua một đối tượng

  • while6. ~240 micro giây
  • while7 sau đó cho mỗi. ~294 micro giây
  • while8 sau đó cho của. ~535 micro giây

Ở hai cách làm bên dưới, phải tạo thêm một mảng chứa khóa, rồi vòng lặp mới qua đối tượng mảng này nên nó chậm

Mảng là một biến duy nhất được sử dụng để lưu trữ các phần tử của các kiểu dữ liệu khác nhau để chúng có thể được truy cập thông qua một biến duy nhất

Nó là một danh sách các giá trị được sắp xếp theo thứ tự và mỗi giá trị được gọi là một phần tử, được chỉ định bởi một chỉ mục

Biết rằng các biến đơn này chứa một danh sách các phần tử, bạn có thể muốn tạo một danh sách các phần tử này để bạn có thể thực hiện các chức năng riêng lẻ với chúng và hơn thế nữa. Đây là nơi vòng lặp phát huy tác dụng

Vòng lặp trong JavaScript là gì?

Vòng lặp là một loại chương trình máy tính cho phép chúng ta lặp lại một thao tác cụ thể với số lần được xác định trước mà không cần phải viết thao tác đó riêng lẻ

Ví dụ: nếu chúng ta có một mảng và muốn xuất từng phần tử trong mảng, thay vì sử dụng số chỉ mục để thực hiện từng phần tử một, chúng ta chỉ cần lặp qua và thực hiện thao tác này một lần

Có rất nhiều phương thức để lặp qua một mảng trong JavaScript. Trong bài viết này, chúng tôi sẽ giới thiệu những cách được sử dụng phổ biến nhất để bạn có thể tìm hiểu các cách tiếp cận khác nhau và hiểu cách chúng hoạt động

Chúng tôi sẽ sử dụng mảng sau cho bài viết này

const scores = [22, 54, 76, 92, 43, 33];

Cách lặp qua một mảng bằng vòng lặp While trong JavaScript

Bạn có thể sử dụng vòng lặp

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
5 để đánh giá một điều kiện được đặt trong dấu ngoặc đơn
let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
6. Nếu điều kiện là
let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
7, mã bên trong vòng lặp
let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
5 được thực thi. Nếu là
let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
9, vòng lặp kết thúc

Nếu chúng ta muốn lặp qua một mảng, chúng ta có thể sử dụng thuộc tính

22
54
76
92
43
33
0 để chỉ định rằng vòng lặp sẽ tiếp tục cho đến khi chúng ta đến phần tử cuối cùng của mảng

Bây giờ chúng ta hãy sử dụng phương thức vòng lặp while để lặp qua mảng

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}

Điều này sẽ lần lượt trả về từng phần tử trong mảng của chúng ta

22
54
76
92
43
33

Trong vòng lặp ở trên, trước tiên chúng tôi khởi tạo số chỉ mục để nó bắt đầu bằng

22
54
76
92
43
33
1. Sau đó, số lượng sẽ tiếp tục tăng và xuất ra từng phần tử cho đến khi điều kiện chúng ta đặt trả về false, cho biết chúng ta đã đến cuối mảng. Khi
22
54
76
92
43
33
2 thì điều kiện sẽ không được thực hiện nữa vì chỉ số cuối cùng của mảng là
22
54
76
92
43
33
3

Cách lặp qua một mảng bằng vòng lặp 22 54 76 92 43 33 4 trong JavaScript

Vòng lặp

22
54
76
92
43
33
5 gần giống với vòng lặp while, ngoại trừ việc nó thực thi phần thân trước khi đánh giá điều kiện cho các lần thực hiện tiếp theo. Điều này có nghĩa là phần thân của vòng lặp luôn được thực thi ít nhất một lần

Hãy thực hiện vòng lặp tương tự với vòng lặp

22
54
76
92
43
33
4 để xem nó hoạt động như thế nào

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);

Điều này sẽ trả về từng phần tử trong mảng của chúng tôi

22
54
76
92
43
33

Như đã nêu trước đây, điều này sẽ luôn chạy một lần trước khi đánh giá bất kỳ bộ điều kiện nào. Ví dụ: nếu chúng ta đặt chỉ số

22
54
76
92
43
33
7 thành
22
54
76
92
43
33
8 và nó không còn nhỏ hơn
22
54
76
92
43
33
9, phần thân của vòng lặp sẽ chạy trước khi kiểm tra điều kiện

let i = 6;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);

Điều này sẽ trả về một

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
0 vì chúng ta không có phần tử nào trong mảng có chỉ số
22
54
76
92
43
33
8 nhưng như bạn có thể thấy nó đã chạy một lần trước khi dừng

Cách lặp qua một mảng bằng vòng lặp for trong JavaScript

Vòng lặp

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
2 là một câu lệnh lặp kiểm tra các điều kiện nhất định và sau đó thực thi lặp đi lặp lại một khối mã miễn là các điều kiện đó được đáp ứng

Chúng ta không cần khởi tạo chỉ mục trước khi sử dụng phương thức vòng lặp

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
2 vì việc khởi tạo, điều kiện và phép lặp đều được xử lý trong dấu ngoặc đơn, như minh họa bên dưới

for (let i = 0; i < scores.length; i++) {
    console.log(scores[i]);
}

Điều này sẽ trả về tất cả các phần tử như các phương thức khác đã thực hiện

22
54
76
92
43
33

Cách lặp qua một mảng bằng vòng lặp let i = 0; do { console.log(scores[i]); i++; } while (i < scores.length); 4 trong JavaScript

Vòng lặp

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
4 là một cách dễ dàng hơn để lặp qua các mảng vì nó cung cấp cho chúng ta khóa mà bây giờ chúng ta có thể sử dụng để lấy các giá trị từ mảng của mình theo cách này

for (i in scores) {
    console.log(scores[i]);
}

Điều này sẽ xuất ra tất cả các phần tử trong mảng của chúng tôi

22
54
76
92
43
33

Cách lặp qua một mảng bằng vòng lặp let i = 0; do { console.log(scores[i]); i++; } while (i < scores.length); 6 trong JavaScript

Vòng lặp

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
7 lặp qua các đối tượng có thể lặp lại như mảng, tập hợp, bản đồ, chuỗi, v.v. Nó có cú pháp tương tự như vòng lặp
let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
8, nhưng thay vì lấy
let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);
9, nó sẽ lấy chính phần tử đó

Đây là một trong những phương thức đơn giản nhất để lặp qua một mảng và đã được giới thiệu trong các phiên bản JavaScript ES6 sau này

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
0

Điều này lấy từng phần tử của mảng của chúng tôi và chúng tôi không còn cần sử dụng chỉ mục để lấy từng phần tử của mảng nữa

22
54
76
92
43
33

Cách lặp qua một mảng bằng vòng lặp 22 54 76 92 43 33 0 trong JavaScript

Phương thức mảng

22
54
76
92
43
33
1 lặp qua bất kỳ mảng nào, thực thi hàm được cung cấp một lần cho mỗi phần tử mảng theo thứ tự chỉ số tăng dần. Chức năng này được gọi là chức năng gọi lại

Đây là một phương thức nâng cao hơn có thể làm được nhiều việc hơn là chỉ lặp qua từng phần tử, nhưng bạn cũng có thể sử dụng nó để lặp theo cách này

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
2

Bạn có thể viết điều này trong một dòng theo cách này

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}
3

Và điều này sẽ cho chúng ta kết quả giống như tất cả các phương thức trước đó

22
54
76
92
43
33

kết thúc

Trong bài viết này, chúng ta đã xem xét sáu phương thức khác nhau/tiêu chuẩn để lặp qua một mảng

Điều quan trọng là bạn phải hiểu tất cả các phương pháp này và sau đó xác định phương pháp nào phù hợp với bạn hơn, dễ sử dụng hơn và dễ đọc hơn

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Mảng và vòng lặp javascript
Joel Olawanle

Nhà phát triển Frontend & Người viết kỹ thuật


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có việc làm với tư cách là nhà phát triển. Bắt đầu