1
resposta

atividade 18

const livros = ['Dom Casmurro', 'O Cortiço', 'Capitães da Areia', 'Iracema'];
const livroProcurado = 'O Cortiço';

const procuralivro = livros.indexOf (livroProcurado)
                if (procuralivro === livroProcurado){
                 
console.log (`O livro ${livroProcurado} está disponível.`)   
                } else if (procuralivro !== livroProcurado ){
                    console.log (`o livro ${livroProcurado} esta indisponivel`)
1 resposta

Oi, Marcelo! Tudo bem?

Parabéns por praticar! Você mandou muito bem na escolha do método indexOf(), mas tem um pequeno detalhe sobre o funcionamento dele que precisamos ajustar na sua lógica.

O indexOf() não devolve o texto com o nome do livro, ele devolve a posição (índice numérico) dele dentro do array. Se ele achar o livro, devolve 0, 1, 2, etc. Se não achar, devolve exatamente -1.

No seu código, a variável procuralivro está recebendo o número 1 (que é a posição de 'O Cortiço'). Quando o seu if tenta comparar o número 1 com o texto 'O Cortiço' (1 === 'O Cortiço'), o JavaScript entende como falso.

Para consertar e não esquecer de fechar as chaves }, a sua condição deve verificar se o número retornado é diferente de -1:

const livros = ['Dom Casmurro', 'O Cortiço', 'Capitães da Areia', 'Iracema'];
const livroProcurado = 'O Cortiço';

const procuralivro = livros.indexOf(livroProcurado);

// Se a posição for diferente de -1, o livro existe na lista
if (procuralivro !== -1) {
    console.log(`O livro "${livroProcurado}" está disponível.`);
} else {
    console.log(`O livro "${livroProcurado}" está indisponível.`);
}

Espero ter ajudado a clarear esse conceito! Continue com essa dedicação.

Bons estudos!

Sucesso

Imagem da comunidade