1
resposta

Não existe componentes repetido aqui! Revisao dos exercicios

Olá pessoal, finalizei a logica 1 e estou fazendo uma pequena revisão. Modificando alguns nomes e adicionando uns comentários conforme vou escrevendo o código, para assim tentar fixar na cabeça rsrs... Segue abaixo meu código, porém ao invés de receitas, fiz como se fosse uma montagem de um computador. No final incluí um "mostra" para aparecer na tela, a lista dos itens digitados pela pessoa. Ficou bom? Como posso melhorar o código? Algo digitado nos meus comentários está errado ou pode ser aperfeiçoado? Valeu pessoal!!

  <h1>Peças para o computador do Junior</h1>

  <script>

    function pulaLinha() {
      document.write("<br>");
    }

    function mostra(frase) {
      document.write(frase);
      pulaLinha()
    }


    // Essa var irá conter o nome de cada componente, dentro do seu Array.
    var componentes = [];

    // Essa var irá solicitar ao usuario quantos componentes (em numeros) serão utilizados no computador. Isso será usado posteriormente para a quantidade de itens dentro do array e para não deixar itens repetidos.
    var quantidade = parseInt(prompt("Quantos componetes terá o seu computador?"));

    // Essa var é usada para o while saber a quantidade maxima de numeros que podem ser gerados, no caso, quantos nomes de componentes.
    var contador = 1;

    // Enquanto contador for menor ou igual que a quantidade...
    while (contador <= quantidade) {


      //Essa var irá solicitar ao usuario via prompt o componente que será utilizado na montagem do PC e indicará o número do componente digitado, ex: Informe o componente 1...2...3, para que o usuario saiba que já digitou 1 componente antes.
      var componente = prompt("Informe o componente " + contador);

      // Essa var, irá informar ao código (quando solicitado) se o item escrito já foi falado antes ou não.
      var existe = false;

      //Esse for terá a funcao de incrementar a posiçao dos componentes digitados, toda vez que forem digitados peças diferentes. Por isso o uso do posicao++
      for (var posicao = 0; posicao < componentes.length; posicao++) {

        //Esse if indica o que está escrito acima. Se um dos componentes da posicao 1,2,3... for igual a outro componente, a  variavel existe dirá que já foi escrito e irá solicitar que o usuario digite novamente.
        if (componentes[posicao] == componente) {
          existe = true;
          break;
        }
      }
      // Esse if será praticamente o contrario do acima. Se o componente for diferente, ele irá enviar o componente para o Array (com o atributo push), irá incrementar o contador, e deixará o usuario digitar o proximo item.
      // Esse if também precisa ficar fora das chaves acima, pois pode nao deixar o código fluir.
      if (existe == false) {
        componentes.push(componente);
        contador++;
        // Esse mostra irá printar na tela os itens que foram digitados pelo usuario.
        mostra(componente);

      }
      console.log(componentes);

    }
  </script>
1 resposta

Fala Carlos, tudo certo por aí?

Agradeço a paciência em aguardar um retorno.

Parabéns por sua dedicação! Esse exercício que você fez é super importante. A prática constante e, também, se colocar em situações desafiadoras que testem a sua capacidade são duas das táticas mais eficazes para apreender verdadeiramente um novo conhecimento. Assim você vai longe!

Suas anotações estão coerentes com o código. É uma forma muito boa de estudar :)

Grande abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.