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

Desafio por completo

Gostaria de saber oque da pra mudar se eu errei algo , e como faço para poder executar a mensagem para quando quiser devolver e executar o botão cancelar do confirm , tipo ' nossa eu ia devolver o jogo errado nao era esse deixa eu cancelar ' .

let jogosAlugados = 0;

function exibirJogosAlugados(){
    console.log(`Total de jogos alugados , ${jogosAlugados}`);
}

function alterarStatus(id) {
    let gameClicado = document.getElementById(`game-${id}`);
    let botao = gameClicado.querySelector('.dashboard__item__button');// Colocar ponto quando é classe
    let imagem = gameClicado.querySelector('.dashboard__item__img'); //Colocar ponto quando é classe
    let nomeJogo = gameClicado.querySelector('.dashboard__item__name').textContent// Colocar ponto quando é classe

  // para executar o botão de confirmar , OK e Cancelar assim obedecendo oque eu quero.
    let confirmar = (confirm(`Você deseja alugar o jogo ${nomeJogo} ?`));
    if (confirmar == true) 
    

    // Verifica se dentro do HTML contem a classe falada
    if(imagem.classList.contains('dashboard__item__img--rented')) {
        imagem.classList.remove('dashboard__item__img--rented');
        botao.classList.remove('dashboard__item__button--return');
        botao.textContent = 'Alugar'
        jogosAlugados--;
    } else {                                                    
        imagem.classList.add('dashboard__item__img--rented');                                          // adiciona os botões necessários caso a verificação seja falsa
        botao.classList.add('dashboard__item__button--return');                                       // adiciona os botões necessários caso a verificação seja falsa       
        botao.textContent = 'Devolver'                                                                // adiciona os botões necessários caso a verificação seja falsa
        jogosAlugados++;
        exibirJogosAlugados;
        
    }
}

    document.addEventListener('DOMContentLoaded', function() {
    jogosAlugados = document.querySelectorAll('.dashboard__item__img--rented').length;
    exibirJogosAlugados();
});



function palavraPalindromo(palavra) {
    let separandoPalavra = palavra.split("");
    let palavraInvertida = separandoPalavra.reverse("");
    palavraInvertida = palavraInvertida.join("");
    if (palavra == palavraInvertida) {
        console.log(`Esta palavra ${palavra} é um Palindromo`);
    } else {
        console.log(`Esta palavra ${palavra} não é um Palindromo`);
    }
    palavraPalindromo();
}



function ordenarNumeros(a, b, c) {
    const numerosOrdenados = [a, b, c].sort((x, y) => x - y);
    console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);
}
4 respostas
solução!

Oi Thiago, tudo bem? 😊

Analisando seu código, identifiquei alguns pontos que podem ser melhorados e como você pode implementar a lógica do botão "cancelar" no confirm().

Primeiramente, a função exibirJogosAlugados está sendo chamada sem os parênteses (), o que impede sua execução. Para corrigir, altere exibirJogosAlugados; para exibirJogosAlugados();.

Para o botão "cancelar" do confirm(), você pode usar um else para tratar o caso em que o usuário clica em "cancelar".

let confirmar = confirm(`Você deseja alugar o jogo ${nomeJogo} ?`);
if (confirmar) {
    // Lógica para alugar o jogo
} else {
    alert("Aluguel cancelado!");
}

Outro ponto é que a função palavraPalindromo está chamando a si mesma no final, o que causa um loop infinito. Remova a chamada palavraPalindromo(); dentro da função.

Além disso, a função ordenarNumeros está correta, mas você pode usar template literals para tornar a string mais legível.

console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);

Código revisado:

let jogosAlugados = 0;

function exibirJogosAlugados() {
    console.log(`Total de jogos alugados: ${jogosAlugados}`);
}

function alterarStatus(id) {
    let gameClicado = document.getElementById(`game-${id}`);
    let botao = gameClicado.querySelector('.dashboard__item__button');
    let imagem = gameClicado.querySelector('.dashboard__item__img');
    let nomeJogo = gameClicado.querySelector('.dashboard__item__name').textContent;

    let confirmar = confirm(`Você deseja alugar o jogo ${nomeJogo} ?`);
    if (confirmar) {
        if (imagem.classList.contains('dashboard__item__img--rented')) {
            imagem.classList.remove('dashboard__item__img--rented');
            botao.classList.remove('dashboard__item__button--return');
            botao.textContent = 'Alugar';
            jogosAlugados--;
        } else {
            imagem.classList.add('dashboard__item__img--rented');
            botao.classList.add('dashboard__item__button--return');
            botao.textContent = 'Devolver';
            jogosAlugados++;
            exibirJogosAlugados();
        }
    } else {
        alert("Aluguel cancelado!");
    }
}

document.addEventListener('DOMContentLoaded', function() {
    jogosAlugados = document.querySelectorAll('.dashboard__item__img--rented').length;
    exibirJogosAlugados();
});

function palavraPalindromo(palavra) {
    let separandoPalavra = palavra.split("");
    let palavraInvertida = separandoPalavra.reverse("");
    palavraInvertida = palavraInvertida.join("");
    if (palavra == palavraInvertida) {
        console.log(`Esta palavra ${palavra} é um Palindromo`);
    } else {
        console.log(`Esta palavra ${palavra} não é um Palindromo`);
    }
}

function ordenarNumeros(a, b, c) {
    const numerosOrdenados = [a, b, c].sort((x, y) => x - y);
    console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);
}

🎓 Para saber mais:

Espero que isso ajude a aprimorar seu código! 🤔 Continue praticando e explorando novas possibilidades. 💪

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓

Falto so uma duvida como faço para exibir a mensagem voce deja devolver o jogo ?

Oi Thiago,

Para exibir a mensagem "Você deseja devolver o jogo?", você precisa adicionar uma verificação dentro da função alterarStatus. 🤔

Essa verificação deve ocorrer antes de perguntar se o usuário quer alugar o jogo. Você pode verificar se a imagem do jogo já possui a classe dashboard__item__img--rented. Se tiver, significa que o jogo está alugado e você deve perguntar se ele quer devolver.

Veja como ficaria o código:

function alterarStatus(id) {
    let gameClicado = document.getElementById(`game-${id}`);
    let botao = gameClicado.querySelector('.dashboard__item__button');
    let imagem = gameClicado.querySelector('.dashboard__item__img');
    let nomeJogo = gameClicado.querySelector('.dashboard__item__name').textContent;

    let confirmar;

    if (imagem.classList.contains('dashboard__item__img--rented')) {
        confirmar = confirm(`Você deseja devolver o jogo ${nomeJogo} ?`);
        if (confirmar) {
            imagem.classList.remove('dashboard__item__img--rented');
            botao.classList.remove('dashboard__item__button--return');
            botao.textContent = 'Alugar';
            jogosAlugados--;
        } else {
            alert("Devolução cancelada!");
        }
    } else {
        confirmar = confirm(`Você deseja alugar o jogo ${nomeJogo} ?`);
        if (confirmar) {
            imagem.classList.add('dashboard__item__img--rented');
            botao.classList.add('dashboard__item__button--return');
            botao.textContent = 'Devolver';
            jogosAlugados++;
            exibirJogosAlugados();
        } else {
            alert("Aluguel cancelado!");
        }
    }
}

Nesse código, primeiro verificamos se o jogo está alugado. Se estiver, perguntamos se o usuário quer devolver. Caso contrário, perguntamos se ele quer alugar. 🧐

🎓 Para saber mais:

Espero que isso ajude! Continue praticando e explorando novas possibilidades. 💪

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓

Obrigado