Erro [Symbol.iterador] is not a function

Ola

Estou seguindo os exemplos do livro ECMAScript 6 do Diego Pinho e digitei o exemplo da ágina 27. Porem ao executar com node aparece um erro:

TypeError: bruxos[Symbol.iterador] is not a function

Alguem passou por este problema tambem ?
Grato

1 curtida

Bom dia, tudo bem?

Por favor, verifique se você não esquece de inserir o parênteses no final da declaração:

var iterador = bruxos[Symbol.iterator]();

Acredito que seja esse o problema! Lembrando que no mesmo trecho de código, não há implementação feita pro trecho chapeuSeletor.fazerSelecaoDaCasa(bruxo). Para ajudar, deixei liberada a aula 21 do meu curso baseado no livro lá no Udemy, lá acabei descrevendo melhor este exemplo:

Abraços!

Também tive dificuldade, mas depois deu certo.
Exemplo a seguir:

// ChapeuSeletor
var selectorHat = function(bitch){
var houses = [‘Grifinória’, ‘Sonsorina’, ‘Corvinal’, ‘Lufa-lufa’];
var house = houses[Math.floor(Math.random() * houses.length)];

console.log('Bruxo: ' + bitch + '| Casa:' + house);

}

// Vamos escolher as casas dos bruxos
var bitches = [‘Harry Potter’, ‘Hermione Granger’, ‘Rony Weasley’];

var iterator = bitches[Symbol.iterator] ();
var done = false;
var proximo = iterator.next();
do {
var bitch = proximo.value;
console.log(bitch); // Ajuda e entender o código
selectorHat(bitch);
proximo = iterator.next();
console.log(proximo); // Ajuda e entender o código
} while (!proximo.done);