Vòng lặp for...of
Vòng lặp for...of
và for...in
cung cấp cách thức thuận tiện để duyệt qua các phần tử của mảng và các thuộc tính của
đối tượng trong JavaScript. Cả hai vòng lặp đều được sử dụng để duyệt, nhưng được áp dụng trong các tình huống khác nhau.
Vòng lặp for...of
Vòng lặp for...of
được dùng để duyệt qua các đối tượng có thể lặp lại (như mảng, chuỗi, đối tượng
Set
và Map
). Nó cho phép bạn dễ dàng duyệt qua các phần tử của một collection.
Cú pháp:
for (let variable of iterable) {
// mã để thực thi với mỗi phần tử
}
Ví dụ:
let array = [1, 2, 3, 4, 5];
for (let value of array) {
console.log(value);
}
// Xuất: 1 2 3 4 5
Sử dụng với mảng
Vòng lặp for...of
rất hữu ích để duyệt qua các phần tử trong mảng, vì nó cung cấp truy cập đến giá trị của mỗi phần tử:
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
// Xuất: apple banana cherry
Sử dụng với chuỗi
Vòng lặp for...of
cũng có thể được sử dụng để lặp qua các ký tự của một chuỗi:
let str = 'Hello';
for (let char of str) {
console.log(char);
}
// Xuất: H e l l o
9.2 Vòng lặp for...in
Vòng lặp for...in
được dùng để lặp qua các thuộc tính có thể liệt kê của một đối tượng.
Nó thực hiện lặp qua khóa của mỗi thuộc tính.
Cú pháp:
for (let key in object {
// mã để thực thi với mỗi phần tử
}
Ví dụ:
let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key + ': ' + obj[key]);
}
// Xuất: a: 1 b: 2 c: 3
Sử dụng với đối tượng
Vòng lặp for...in
hữu ích để duyệt qua các thuộc tính của đối tượng, vì nó cho phép bạn truy cập vào cả khóa và giá trị của mỗi thuộc tính:
let user = {
name: 'John',
age: 30,
isAdmin: true
};
for (let key in user) {
console.log(key + ': ' + user[key]);
}
// Xuất: name: John age: 30 isAdmin: true
Sử dụng với mảng
Vòng lặp for...in
có thể được sử dụng để duyệt qua các chỉ mục của mảng, nhưng điều này không được khuyến khích, vì
nó lặp qua tất cả các thuộc tính có thể liệt kê, bao gồm cả các thuộc tính từ prototype:
let array = ['apple', 'banana', 'cherry'];
for (let index in array) {
console.log(index + ': ' + array[index]);
}
// Xuất: 0: apple 1: banana 2: cherry
9.3 So sánh vòng lặp for...of và for...in
So sánh vòng lặp for...of
và for...in
:
Mô tả | for...of | for...in |
---|---|---|
Áp dụng | Đối tượng có thể lặp lại (mảng, chuỗi, Set, Map) | Đối tượng |
Đặc trưng | Lặp qua các giá trị | Lặp qua các khóa |
Sử dụng với mảng | for (let value of array) { ... } |
for (let index in array) { ... } |
Sử dụng với đối tượng | for (let value of Object.values(obj)) { ... } |
for (let key in obj) { ... } |
GO TO FULL VERSION