Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

313
Visualizações
¿Puede el valor booleano producir valores numéricos?

Encontré una solución para una de las pruebas que tengo al trabajar con la estructura de datos de JavaScript, en la que se proporcionó un objeto (juego con nombre) de la siguiente manera.

 const game = { score: '4:0', scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'], //Names of players date: 'Nov 9th, 2037', odds: { team1: 1.33, x: 3.25, team2: 6.5, }, };

El cuestionario o desafío consiste en crear un objeto llamado 'goleadores' que contenga los nombres de los jugadores que anotaron como propiedades y el número de goles como valor. En este juego, se verá así:

 { Gnarby: 1, Hummels: 1, Lewandowski: 2 }

Encontré la siguiente solución:

 let scorers = {}; let arr = Object.values(game.scored); for(const player of arr) { scorers[player] = (scorers[player] || 0) + 1; } console.log(scorers); // {Lewandowski: 2, Gnarby: 1, Hummels: 1}

Mi pregunta es cómo la sintaxis scorers[player] = (scorers[player] || 0) + 1; produce valores para cada propiedad del jugador, aunque será verdadero o falso, y ¿cómo al final se agregará 1 aunque sea de tipo número? ¿Cómo interpretar este código en un lenguaje sencillo?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

A diferencia de otros lenguajes, JavaScript permite que se usen otros tipos de datos para lo que parecen ser operadores puramente booleanos. En ese caso, JavaScript interpretará temporalmente un valor no booleano como "falso" o "verdadero".

Hay dos casos:

  • scorers[player] no está definido. En ese caso el || El operando identificará ese valor como un valor "falso" y, por lo tanto, continuará evaluando el operando correcto, que es 0. Entonces (undefined || 0) se evalúa como 0.

  • se define scorers[player] , y (para este programa) será un número positivo. En ese caso el || el operando lo considerará "veraz" y no evaluará el operando correcto. Entonces (1 || 0) se evalúa como 1.

NB: en JavaScript moderno, ahora es una mejor práctica usar el ?? operador para este caso de uso en lugar de || .

about 4 years ago · Juan Pablo Isaza Relatório

0

La sintaxis scorers[player] || 0 se llama cortocircuito en JavaScript.

Es tan simple como AND, OR AND NOT en álgebra lógica. De forma predeterminada, una propiedad inexistente en JS Object produce undefined (lo que significa Boolean false). Aquí hay algunos usos del cortocircuito en JS.

ingrese la descripción de la imagen aquí

Su declaración scorers[player] = (scorers[player] || 0 dará como resultado el resultado socres [jugador] si existe o 0. Cuando le agregó 1, aumentará el recuento de goles del jugador actual. Eso dará como resultado en 0 o +1 a la puntuación actual del jugador Cada paso involucrado en esa declaración se muestra a continuación.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda