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
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor