Laço for...of
Os laços for...of
e for...in
oferecem maneiras convenientes de iterar sobre elementos de arrays e propriedades de objetos em JavaScript. Ambos são usados para iteração, mas em situações diferentes.
Laço for...of
O laço for...of
é destinado à iteração sobre objetos iteráveis (como arrays, strings, objetos
Set
e Map
). Ele permite percorrer facilmente os elementos de uma coleção.
Sintaxe:
for (let variable of iterable) {
// código que será executado para cada elemento
}
Exemplo:
let array = [1, 2, 3, 4, 5];
for (let value of array) {
console.log(value);
}
// Saída: 1 2 3 4 5
Uso para arrays
O laço for...of
é conveniente para percorrer elementos de um array, pois permite acesso ao valor de cada elemento:
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
// Saída: apple banana cherry
Uso para strings
O laço for...of
também pode ser usado para iterar sobre caracteres de uma string:
let str = 'Hello';
for (let char of str) {
console.log(char);
}
// Saída: H e l l o
9.2 Laço for...in
O laço for...in
é usado para iterar sobre propriedades enumeráveis de um objeto.
Ele executa a iteração sobre a chave de cada propriedade.
Sintaxe:
for (let key in object {
// código que será executado para cada elemento
}
Exemplo:
let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key + ': ' + obj[key]);
}
// Saída: a: 1 b: 2 c: 3
Uso para objetos
O laço for...in
é conveniente para percorrer propriedades de um objeto, pois fornece acesso à chave e ao valor de cada propriedade:
let user = {
name: 'John',
age: 30,
isAdmin: true
};
for (let key in user) {
console.log(key + ': ' + user[key]);
}
// Saída: name: John age: 30 isAdmin: true
Uso para arrays
O laço for...in
pode ser usado para iterar sobre índices de um array, mas isso não é recomendado, pois ele itera sobre todas as propriedades enumeráveis, incluindo propriedades do protótipo:
let array = ['apple', 'banana', 'cherry'];
for (let index in array) {
console.log(index + ': ' + array[index]);
}
// Saída: 0: apple 1: banana 2: cherry
9.3 Comparação dos laços for...of e for...in
Comparação dos laços for...of
e for...in
:
Descrição | for...of | for...in |
---|---|---|
Uso | Objetos iteráveis (arrays, strings, Set, Map) | Objetos |
Características | Itera sobre valores | Itera sobre chaves |
Uso com arrays | for (let value of array) { ... } |
for (let index in array) { ... } |
Uso com objetos | for (let value of Object.values(obj)) { ... } |
for (let key in obj) { ... } |
GO TO FULL VERSION