1
resposta

[02-criando a lógica do projeto] Não entendi esse trecho do código.

Na função verificaPalavrasDuplicadas(), no foreach é passado a seguinte expressão: resultado[palavra] = (resultado[palavra] || 0) + 1

qual é o sentido dessa atribuição: '|| 0 + 1', não entendi a lógica por trás dessa condicional.

1 resposta

Olá Kaio tudo bem ?

eu nao sei qual é o exercicio mas vou tentar te explicar a lógica.

A linha resultado[palavra] = (resultado[palavra] || 0) + 1 é usada para contar quantas vezes cada palavra aparece em uma lista. Aqui está como ela

funciona, passo a passo:

resultado[palavra]: Pega o valor atual da contagem para a palavra. Se a palavra ainda não está no objeto resultado, o valor será undefined.

resultado[palavra] || 0: Se o valor é undefined (ou seja, a palavra não foi contada antes), ele usa 0 no lugar. Então, se a palavra já tem uma contagem, ele usa essa contagem; se não, ele começa com 0.

(resultado[palavra] || 0) + 1: Adiciona 1 ao valor atual (ou 0 se for a primeira vez que vê a palavra).

Resumindo, a expressão faz isso:

Se a palavra ainda não foi contada, começa a contagem em 1. Se a palavra já foi contada, adiciona 1 à contagem existente.

Um exemplo prático:

function contaPalavras(palavras) {
  let resultado = {};

  palavras.forEach(palavra => {
    resultado[palavra] = (resultado[palavra] || 0) + 1;
  });

  return resultado;
}

const palavras = ["maçã", "banana", "maçã", "laranja", "banana", "banana"];
console.log(contaPalavras(palavras));
// Saída: { maçã: 2, banana: 3, laranja: 1 }

Neste exemplo, ele conta quantas vezes cada fruta aparece na lista. Se a fruta não apareceu antes, começa com 0 e adiciona 1. Se já apareceu, simplesmente adiciona 1 à contagem existente.