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.
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.