Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

248
Vistas
¿Llenando objetos javascript vacíos?

tengo una pregunta acerca de cómo un número también se asoció con un literal de cadena.

Mi programa presenta una lista de anotadores en mi objeto de juego, como puede ver aquí.

 const game = { team1: 'Bayern Munich', team2: 'Borrussia Dortmund', players: [ [ 'Neuer', 'Pavard', 'Martinez', 'Alaba', 'Davies', 'Kimmich', 'Goretzka', 'Coman', 'Muller', 'Gnarby', 'Lewandowski', ], [ 'Burki', 'Schulz', 'Hummels', 'Akanji', 'Hakimi', 'Weigl', 'Witsel', 'Hazard', 'Brandt', 'Sancho', 'Gotze', ], ], score: '4:0', scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'], date: 'Nov 9th, 2037', odds: { team1: 1.33, x: 3.25, team2: 6.5, }, }; let count0 = 0; let count1 = 0; let count2 = 0; for (let i = 0; i < playerScored.length; i++) { if ( playerScored[i] === 'Lewandowski' ) { count0 += 1; } else if ( playerScored[i] === 'Gnarby') { count1 += 1; } else if ( playerScored[i] === 'Hummels') { count2 += 1; } } const scorers = {}; for (const player of game.scored) { scorers[player] ? scorers[player]++ : (scorers[player] = 1); } console.log(scorers);

Mi pregunta es, en esta línea particular de código en el programa

 const scorers = {}; for (const player of game.scored) { scorers[player] ? scorers[player]++ : (scorers[player] = 1); } console.log(scorers);

¿Cómo mostró el programa el número y el nombre del jugador que anotó? Entiendo cómo se pone el nombre del jugador en el objeto vacío. Gracias.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

La línea

 scorers[player] ? scorers[player]++ : (scorers[player] = 1);

es equivalente a

 if (scorers[player]) { scorers[player]++; } else { scorers[player] = 1; }

La condición if comprueba si el nombre ya está en el objeto. Si es así, usa ++ para agregar 1 al conteo. Si el nombre aún no está en el objeto, se crea con la asignación en el bloque else y se le asigna un recuento inicial de 1 .

about 4 years ago · Juan Pablo Isaza Denunciar

0

El objeto goleadores es algo como esto:

 scorers = { pique: 1, messi: 3, henry: 11 };

cuando haces scorers[player]++ por ejemplo scorers['pique']++ Agrega uno a los valores de pique. y tu objeto se convertirá

 scorers = { pique: 2, messi: 3, henry: 11 };

y cuando haces scorers[player] = 1 en tu código, de hecho estás agregando una nueva propiedad al objeto goleadores. por ejemplo, después de scorers['xavi'] = 1 su objeto se convierte en:

 scorers = { pique: 2, messi: 3, henry: 11, xavi: 1 };
about 4 years ago · Juan Pablo Isaza Denunciar

0

Tu game.scored se ve así:

 const game = { scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'] }

Cuando ejecutas el siguiente código:

 const scorers = {}; for (const player of game.scored) { scorers[player] ? scorers[player]++ : (scorers[player] = 1); } console.log(scorers);

['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'] y verificará si hay scorers[player] . Si existe, simplemente lo incrementa en 1, de lo contrario, lo establece en 1.

Por lo tanto, después de que termine su bucle y lo console.log , los scorers tendrán 'Lewandowski', 'Gnarby', 'Hummels' como sus claves.

Estoy confundido con la forma en que tiene el nombre y el número en la misma línea, supongo que agregar el ++ también agrega el valor de la cadena con el valor del número

Básicamente estás creando un objeto que se parece a esto:

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

Tal vez sea más fácil de entender si imprime el valor de los scorers en cada ciclo.

 const game = { scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'] } const scorers = {}; for (const player of game.scored) { scorers[player] ? scorers[player]++ : (scorers[player] = 1); console.log(scorers); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda