Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Legal a resolução - Faltou somente o parseInt

Legal o exercicio.

Faltou somente o -- total+=parseInt(convidados[i].idade);

Olhando rapidamente vc pensa que não da pra refatorar muito. Ficou bem legal a resolução.

4 respostas
solução!

Oi Amaro!

Que bom que você curtiu o exercício!

Realmente, quando a gente termina um código (e ele funciona) tendemos a pensar que ele está bom, mas sempre tem alguma coisinha pra melhorar.

A sua sugestão de adicionar o parseInt não é necessária, pois o atributo idade já é um int. Na declaração do convidado, a conversão já acontece

var convidado = {
    nome:  itens[i].querySelector('.nome').textContent,
    idade: parseInt(itens[i].querySelector('.idade').textContent)
};

Obrigado pelo feedback e parabéns por ter tentado encontrar mais melhorias! Bons estudos.

Coloquei pra rodar e deu error sem o parseint. É que depois ele pede pra fazer a soma das idades. Mas posso ter me equivocado em algo. Vou revisar o código.

Ah sim. Agora que vi como vc fez. Ok.

Oi Amaro!

Pensando bem, o jeito que você fez de converter para inteiro na hora de somar provavelmente seria a primeira solução que eu usaria também. Mas ao refatorar o código, podemos ver que colocar essa conversão na hora de criar o convidado é a melhor solução, pois caso seja necessário usar a idade do usuário novamente, ela já estaria como int.

Se essa conversão ocorre só na hora de somar as idades, nas outras situações que envolvem a idade seria necessário converter novamente, fazendo com que seja necessário mais código escrito e causando possíveis bugs caso a conversão não seja realizada.

Bons estudos!