O erro TypeError: Object is not iterable
ocorre quando você tenta usar um valor que não é iterável, como um objeto comum ou null
, em um loop que exige um valor iterável, como for...of
ou Array.forEach()
. Esse erro geralmente acontece quando você tenta iterar sobre um valor que não é um array, string ou outro tipo de estrutura iterável.
Aqui está um exemplo de código que pode gerar esse erro:
let obj = {a: 1, b: 2};
for (let item of obj) { // TypeError: Object is not iterable
console.log(item);
}
Neste exemplo, o erro ocorre porque o objeto obj
não é iterável, e o for...of
não pode ser usado diretamente com objetos comuns. O for...of
só funciona com tipos iteráveis como arrays e strings.
Como corrigir?
O erro pode ser corrigido de duas formas principais:
-
Use
Object.entries()
ouObject.keys()
para iterar sobre objetos: Se você precisa iterar sobre um objeto, pode usarObject.entries()
ouObject.keys()
para obter um array de chaves ou entradas, que pode ser iterado com um loop. -
Verifique o tipo de dado antes de iterar: Sempre verifique se o valor que você deseja iterar é realmente um tipo iterável antes de usar um loop.
Aqui está um exemplo corrigido utilizando Object.entries()
:
let obj = {a: 1, b: 2};
for (let [key, value] of Object.entries(obj)) {
console.log(key, value);
}
// Saída: a 1
// b 2
Neste exemplo, Object.entries()
converte o objeto em um array de pares chave-valor, que pode ser iterado usando for...of
.
Como evitar o erro Object is not iterable ao usar loops
Esse erro destaca a importância de verificar o tipo de dado que você está tentando iterar. Em JavaScript, objetos comuns não são iteráveis por padrão, e é importante usar os métodos corretos para manipulá-los em loops. Se você tentar usar um loop de forma inadequada, como no caso de um objeto comum, o erro Object is not iterable
vai ocorrer.
Algumas aplicações:
- Use
Object.entries()
ouObject.keys()
para iterar sobre objetos. - Garanta que o valor que você deseja iterar seja de um tipo compatível com o loop (como arrays ou strings).
- Evite usar loops diretamente sobre objetos que não sejam iteráveis, como
null
ouundefined
.
Dicas para quem está começando
- Se você receber o erro
Object is not iterable
, verifique se o valor realmente é um array ou string. - Use métodos como
Object.keys()
para acessar as chaves de objetos e iterar sobre elas de forma segura. - Pratique o uso de arrays e objetos de forma consciente, verificando sempre o tipo de dado antes de usá-los em loops.
Contribuições de Andressa Maria