Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Daria para ficar mais "enxugado"?

Quero dizer: Daria pra ter o mesmo resultado com menos códigos?

<meta charset = "UTF-8">

<script>

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

    var login = "alura";
    var senha = "alura123";
    var tentativas = 3;

        var loginInfo = prompt("Informe seu login");
        var senhaInfo = prompt("Informe sua senha");

    while(tentativas > 1){
        if(login == loginInfo && senha == senhaInfo){
        mostra("Welcome to the rabbit hole");
        tentativas = 0;
        }
        else{
        tentativas = tentativas - 1;
        alert("Você tem mais " + tentativas + " tentativas");
        loginInfo = prompt("Informe seu login");
        senhaInfo = prompt("Informe sua senha");
        }    
    }

    if(tentativas == 1){
        mostra("Jose has left the building");
    }

</script>
1 resposta
solução!

Olá Flavio, tudo bem?

Neste caso como é um código bem estrutural, acaba não tendo como reduzir em questão de quantidade de linhas, pois existe muitas condições e atributos a serem mexidos

A única coisa que você poderia fazer para "diminuir", seria criar uma função para o prompt:

var loginInfo = null
var senhaInfo = null

function obtemInformacoesDoUsuario() {
    loginInfo = prompt("Informe seu Login: ");
    senhaInfo = prompt("Informe sua senha");
}

obtemInformacoesDoUsuario();
while(...){
    [...]
    else {
        obtemInformacoesDoUsuario();
    }
}

Aqui seria uma maneira de diminuir, o lado ruim, é que estamos aproveitando da variável global, o que não é uma boa prática

Mas sinceramente, é sempre bom lembrar que quantidade de linhas de código não é necessariamente uma boa métrica, acredito que a sua solução está com uma quantidade ideal de linhas da maneira como você fez!

Abraços e Bons Estudos :)