Como resolver o erro de TypeError: Object is not iterable ao usar loops em JavaScript

Esse erro ocorre quando você tenta usar um objeto não iterável (como um objeto comum ou null) em um loop que exige um valor iterável.

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:

  1. Use Object.entries() ou Object.keys() para iterar sobre objetos: Se você precisa iterar sobre um objeto, pode usar Object.entries() ou Object.keys() para obter um array de chaves ou entradas, que pode ser iterado com um loop.

  2. 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.

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() ou Object.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 ou undefined.

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

Compartilhe este tutorial: Como resolver o erro de TypeError: Object is not iterable ao usar loops?

Compartilhe este tutorial

Continue aprendendo:

Como corrigir o erro TypeError: Y is not a valid type?

Esse erro ocorre quando um tipo de dado inválido é passado para uma variável ou função, indicando que o valor atribuído não é válido.

Tutorial anterior

O que significa o erro Uncaught SyntaxError: Invalid or unexpected token in JavaScript file?

Esse erro acontece quando o interpretador JavaScript encontra um caractere inesperado ou inválido no código.

Próximo tutorial