Foto de Ranner P.
Ranner há 3 anos
Enviada pelo
Site

Iniciante em javascript

Olá, estou fazendo um curso de Javascript e tem um exercício que o próposito é eu fazer um site que a pessoa deve escrever um número de 1 a 100, esse número vai para um select, ( a pessoa vai adicionando quantos números quiser), após escolhidos esse grupo de número no resultado eu devo mostrar: O maior número entre eles O menor número entre eles A média dos números A soma de todos os números Beleza, meu problem por enquanto está na parte da adição de número na caixa select... se alguem puder dá uma olhada no meu código e ver o porque que não roda!!! POR FAVOR !!! Segue: function adicionar(){ var num = document.getElementById('txtnum') var add = document.getElementById('txtadd') var adicionar = true var opt = document.createElement('option') if (num.value.length == 0 || num.value < 1 || num.value > 100) { window.alert('[ERRO] Digite um valor válido') } else { var numb = Number(num.value) for (i= 0;i < add.options.length; i ) { if (numb == add.options[i].value){ adicionar = false } } } if ( adicionar = true) { opt.text = `O valor adicionado foi ${numb}` opt.value = numb numb.appendChild(opt); } }

Professor Marnei C.
Respondeu há 3 anos
Contatar Marnei

Buenas! Fiz algumas modificações no teu código e vou fazer algumas observações. Espero que te ajude!

Procure utilizar as variáveis do tipo let e const ao invés de var em JavaScript. Se ainda não conhece, sugiro pesquisar sobre, porque é a forma moderna e recomendada. Let permite alterar o valor guardado na variável e const não permite, então use em valores que não vá alterar. Evite var por causa dos "vazamentos".

Alterei o texto do alert para tornar mais "amigável" para o usuário:
alert('Por favor informe um valor entre 1 e 100')
 
Alterei o local onde o elemento option é criado, porque só precisa criá-lo se entrar no else (questão de Lógica).
 
Fiz um ajuste no for, adicionando o let i = 0 (era i = 0) e o ++ no i para incrementar o contador (senão ele não nunca):
for (let i = 0; i < add.options.length; i++) {
 
 
No geral, teu código e a tua Lógica estão muito bons, parabéns!
Espero que consiga entender e aproveitar a resposta!
Abraço e bons estudos!

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tire dúvidas com IA
Resposta na hora da Minerva IA
Enviar dúvida
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa