1
resposta

[Projeto] Exercicios 1 e 2

Exercise 1 and 2


/**
 * Função para alternar o status de aluguel de um jogo (Toggle).
 * Ela recebe o 'id' do jogo clicado (ex: 1, 2 ou 3) direto do HTML.
 */
function alterarStatus(id) {
    // 1. CAPTURAR OS ELEMENTOS HTML
    // Usamos a crase (Template String) para juntar a palavra "game-" com o número do id.
    // Isso captura a tag <li> inteira (o cartão do jogo específico).
    let cartaoJogo = document.getElementById(`game-${id}`);
    
    // O querySelector procura a primeira tag específica DENTRO do elemento 'cartaoJogo'.
    // Aqui estamos pegando a tag <a> (o botão) que pertence apenas a este jogo.
    let botao = cartaoJogo.querySelector('a');
    
    // Aqui estamos pegando a primeira tag <div> (que é a caixa que guarda a imagem do jogo).
    let caixaImagem = cartaoJogo.querySelector('div');


    // 2. LÓGICA DE ALTERNÂNCIA (TOGGLE)
    // O classList.contains verifica se o botão tem a classe específica de "jogo alugado".
    if (botao.classList.contains('dashboard__item__button--return')) {

        if (window.confirm("Você realmente quer devolver?") === false) {
            return;
        }

        
        // --- SE JÁ ESTIVER ALUGADO (Ação: Devolver) ---
        
        // Remove a classe que deixa o botão escuro
        botao.classList.remove('dashboard__item__button--return');
        
        // Muda o texto interno da tag <a> de volta para "Alugar"
        botao.textContent = "Alugar"; 
        
        // Remove a classe que deixa a imagem do jogo escura
        caixaImagem.classList.remove("dashboard__item__img--rented");
    } else {
        
        if (window.confirm("Você realmente quer alugar?") === false) {
            return;
        }

        // --- SE ESTIVER DISPONÍVEL (Ação: Alugar) ---
        
        // Adiciona a classe que deixa o botão escuro (estilo de devolução)
        botao.classList.add('dashboard__item__button--return'); 
        
        // Muda o texto interno da tag <a> para "Devolver"
        botao.textContent = "Devolver";
        
        // Adiciona a classe que aplica o filtro escuro na imagem do jogo
        caixaImagem.classList.add("dashboard__item__img--rented");

    }
 console.log(contarBotoesDevolver());
}

function contarBotoesDevolver() {
    const botoesDevolver = document.querySelectorAll('.dashboard__item__button--return');
    return botoesDevolver.length;
}
1 resposta

exercise 3:

/**
 * Função que verifica se uma palavra ou frase é um palíndromo.
 * Retorna true (verdadeiro) ou false (falso).
 */
function verificarPalindromo(texto) {
    // 1. LIMPEZA DO TEXTO
    // O toLowerCase() transforma tudo em minúsculo.
    // O replace(/\s/g, '') é um filtro que encontra todos os espaços vazios e os remove.
    let textoLimpo = texto.toLowerCase().replace(/\s/g, '');

    // 2. INVERSÃO DO TEXTO
    // .split('') = Corta a palavra transformando cada letra em um item de uma lista.
    // .reverse() = Inverte a ordem dessa lista.
    // .join('') = Junta todas as letras de volta em uma única palavra.
    let textoInvertido = textoLimpo.split('').reverse().join('');

    // 3. COMPARAÇÃO
    // Se o texto limpo for exatamente igual a ele mesmo invertido, é um palíndromo!
    if (textoLimpo === textoInvertido) {
        console.log(`"${texto}" é um palíndromo! ✅`);
        return true;
    } else {
        console.log(`"${texto}" NÃO é um palíndromo. ❌`);
        return false;
    }
}

// Testando a função no console:
verificarPalindromo("Ovo");
verificarPalindromo("A base do teto desaba");
verificarPalindromo("Javascript");

exercise 4:

/**
 * Função que recebe três números independentes e os retorna
 * em uma lista ordenada do menor para o maior (ordem crescente).
 */
function ordenarNumeros(num1, num2, num3) {
    // 1. CRIANDO A LISTA (ARRAY)
    // Agrupamos os três números soltos dentro de colchetes para formar uma lista
    let listaDeNumeros = [num1, num2, num3];

    // 2. ORDENANDO OS NÚMEROS
    // A função .sort() vai pegar os números de 2 em 2 (chamados aqui de 'a' e 'b')
    // A regra (a - b) diz ao computador: "Se o resultado for negativo, o 'a' vem primeiro".
    // Isso garante que a lista fique em ordem matemática crescente.
    listaDeNumeros.sort((a, b) => a - b);

    // 3. RETORNANDO O RESULTADO
    return listaDeNumeros;
}

// Testando a função e exibindo os números ordenados:
let resultadoOrdenado = ordenarNumeros(85, 12, 42);

// Exibindo no console com uma mensagem amigável:
console.log(`Os números em ordem crescente são: ${resultadoOrdenado.join(', ')}`);