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

If/else Alugames

os argumentos do if/else no codigo abaixo, do projeto Alugames, podereiam ser invertidos? digo, condiciona o que esta no else primeiro (mas sendo um if) e vice-versa?

*nao sei se consegui me fazer entender.

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

  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";
    alert("Jogo Devolvido. Obrigado!");
  } else {
    imagem.classList.add("dashboard__item__img--rented");
    botao.classList.add("dashboard__item__button--return");
    botao.textContent = "Devolver";
  }
}
1 resposta
solução!

Oi, Douglas, tudo bem?

Sim, é possível inverter os argumentos do if/else no seu código. O que determina a execução de um bloco de código ou outro é a condição que você coloca no if. Se essa condição for verdadeira, o bloco de código dentro do if é executado. Se for falsa, o bloco de código dentro do else é executado.

Se você quiser inverter isso, pode verificar se a imagem não tem a classe dashboard__item__img--rented. Nesse caso, você usaria o operador de negação (!) antes da condição. O código ficaria assim:

  if (!imagem.classList.contains("dashboard__item__img--rented")) {
    imagem.classList.add("dashboard__item__img--rented");
    botao.classList.add("dashboard__item__button--return");
    botao.textContent = "Devolver";
  } else {
    imagem.classList.remove("dashboard__item__img--rented");
    botao.classList.remove("dashboard__item__button--return");
    botao.textContent = "Alugar";
    alert("Jogo Devolvido. Obrigado!");
  }
}

Perceba que agora, se a imagem não contém a classe dashboard__item__img--rented, o código dentro do if é executado. Se ela contém a classe, o código dentro do else é executado. Ou seja, invertemos a lógica do seu código original.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!