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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.
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.