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

Exercício do Livro - Casa do Código

Boa tarde, tenho seguinte código:

<meta charset="UTF-8">

<input type="text" id="numero" />
<input type="submit" id="adivinhar"
    value="Compare com os meus segredos"/ >

<script>
var segredos = [16, 34, 37, 42, 50, 58];
console.log(segredos)
var caixaDoNumero = document.getElementById("numero");
function botaoClicado(){
    var achou = false
    for(i = 0; i < segredos.length; i++){
        if(segredos[i] == caixaDoNumero.value){
        alert("Você ganhou!" + segredos);
        achou = true;
        break;
        }
    }
    if(achou == false){
        alert("ERROU!");
    }

    caixaDoNumero.value = "";
}
var botaoAdivinhar = document.getElementById("adivinhar")
botaoAdivinhar.onclick = botaoClicado;

</script>

O exercício é o seguinte:

2) Caso o usuário acerte o número, diga qual é a posição do número que ele acertou. Por exemplo: "Parabéns, você acertou o 5o número!”. Isto é, o índice da array, só tome cuidado com o zero.

Só consegui faze-lo mostrar todo o indicie ou apenas aquela que eu determino.

4 respostas
solução!

oi José

Lembra que o índice de um array é a variável do seu laço. Nesse caso é i. Então, dentro do seu if você só precisa adicionar um alert de i.

Conseguiu sacar ?

abraço

Você já tem o índice no for, na verdade se você pegar o i e somar 1 esse é o índice.

if(segredos[i] == caixaDoNumero.value){
    alert("Parabéns, você acertou " + (i + 1) + "o número!");
    achou = true;
        break;
}

Oi Caio, entendi, deu certo aqui. Muito brigado. Para variar uma solução bem simples.

Mas agora tenho outra questão, note que o exercício pede a posição em que o número se encontra no array, e não o próprio número. É possível mostrar a posição do índice do array que o número se encontra??

Fiz a seguinte alteração:

<meta charset="UTF-8">

<input type="text" id="numero" />
<input type="submit" id="adivinhar"
    value="Compare com os meus segredos"/ >

<script>

var segredos = [16, 34, 37, 42, 50, 58];
console.log(segredos)
var caixaDoNumero = document.getElementById("numero");
caixaDoNumero.focus();
function botaoClicado(){
    var achou = false
    for(i = 0; i < segredos.length; i++){
        if(segredos[i] == caixaDoNumero.value){
        alert("Você ganhou! " + segredos[i]);
        achou = true;
        break;
        }
    }
    if(achou == false){
        alert("ERROU!");
    }

    caixaDoNumero.value = "";
    caixaDoNumero.focus();
}
var botaoAdivinhar = document.getElementById("adivinhar")
botaoAdivinhar.onclick = botaoClicado;

</script>

Obrigado Carlos, me ajudou muito cara. Agora entendo o que o Caio queria dizer. Mas fiz um pouco diferente. Segue o código:

<meta charset="UTF-8">

<input type="text" id="numero" />
<input type="submit" id="adivinhar"
    value="Compare com os meus segredos"/ >

<script>

var segredos = [16, 34, 37, 42, 50, 58];
console.log(segredos)
var caixaDoNumero = document.getElementById("numero");
caixaDoNumero.focus();
function botaoClicado(){
    var achou = false
    for(i = 0; i < segredos.length; i++){
        if(segredos[i] == caixaDoNumero.value){
        alert("Você ganhou! " + i);
        achou = true;
        break;
        }
    }
    if(achou == false){
        alert("ERROU!");
    }

    caixaDoNumero.value = "";
    caixaDoNumero.focus();
}
var botaoAdivinhar = document.getElementById("adivinhar")
botaoAdivinhar.onclick = botaoClicado;

</script>