1
resposta

[Reclamação] Acredito que a questão esteja errada

Na questão parece que está ao contrario a resposta, já que o resultado do else é none, ou seja, vazio que é onde o red deveria estar de acordo com o enunciado

1 resposta

Oi, Lucas! Como vai?

Agradeço por compartilhar sua dúvida com a comunidade Alura.

Sua observação é válida e mostra atenção aos detalhes, mas a interpretação do enunciado pode estar te confundindo um pouco. O que a atividade quer é:

Quando não houver itens na lista (ou seja, lista vazia), exiba a mensagem e pinte o fundo de vermelho.Quando houver itens, oculte a mensagem (e não precisa pintar nada).

A alternativa correta da atividade é esta:


function verificarListaVazia() {
  const itensDaLista = listaDeCompras.querySelectorAll("li");

  if (itensDaLista.length === 0) {
    mensagemListaVazia.style.display = "block";
    mensagemListaVazia.style.backgroundColor = "red";
  } else {
    mensagemListaVazia.style.display = "none";
  }
}

Por que ela está correta?

  • Ela verifica se a lista está vazia com itensDaLista.length === 0.
  • Se estiver vazia:   - Mostra a mensagem com display = "block".   - Aplica o fundo vermelho com backgroundColor = "red".
  • Se não estiver vazia, ela apenas oculta a mensagem, sem aplicar nenhuma cor, pois a mensagem nem deve aparecer nesse caso.

Sobre a sua dúvida: Você mencionou que no else está o display = "none", e por isso o fundo vermelho deveria estar ali. Mas isso só seria verdade se quiséssemos pintar de vermelho quando a lista estivesse cheia, o que não é o que o enunciado pede.

Ou seja:

  • A mensagem com fundo vermelho aparece quando a lista está vazia.
  • Quando tem itens, não mostramos a mensagem, por isso display = "none" no else.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado