Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
¿Cómo puedo representar 2 jugadores de una lista, que tienen los mismos puntos, al mismo nivel, por ejemplo, ambos en segundo lugar?

En una tabla de clasificación, me encontré con el problema antes mencionado. Hago una lista donde clasifico a los jugadores según sus puntos. Luego los represento usando el index + 1 para obtener su posición en la lista. Pero en casos de igualdad, uno obtiene el segundo y el otro tercero, etc.

Primero pensé en tener un índice para cada jugador, pero eso sería una exageración, ya que cada vez que un jugador cambiaría sus puntos, tendría que cambiar los índices de otros jugadores también, para ajustar la lista actualizada.

Creo que necesito algo que verifique los puntos, y si son los mismos que el siguiente jugador, asigne el mismo índice. Luego, si el siguiente jugador tiene menos puntos, obtenga el índice, reste el número de jugadores que tuvieron los mismos puntos y dé el resultado como su índice.

¿Es esa una buena solución?

Si alguien quisiera ayudar, tengo aquí un ejemplo mínimo reproducible.

Gracias

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Aquí esta lo que hice. Tomé la lista ordenada, la repasé y verifiqué si el valor anterior era el mismo que el valor actual en la iteración. Si el valor es el mismo, no hay necesidad de aumentar la posición, pero si es diferente, agregue uno a la posición.

https://codesandbox.io/s/players-with-same-points-forked-lkhcu6

about 4 years ago · Juan Pablo Isaza Report

0

Puedes count cuántas personas tienen más puntos que el jugador, y la posición para ese jugador es esa count + 1 . Necesitas un conteo extra para cada jugador, pero si la lista no es muy grande, esta puede ser una solución. Por ejemplo:

 let players = [ { name: "John", points: 4 }, { name: "Bill", points: 3 }, { name: "Mark", points: 4 }, { name: "Helen", points: 2 }, { name: "Mary", points: 10 } ]; const list = players.sort((a, b) => (a.points < b.points ? 1 : -1)); function countPlayersMithMorePoints(points){ return players.filter(player => player.points > points).length + 1; } players = players.map(player => { return { ...player, position: countPlayersMithMorePoints(player.points) } }) console.log(players)

Así que en este caso. "Mark" y "Jhon" tienen 4 puntos... por lo que ambos están en el segundo lugar. Y Helen está en el cuarto lugar. No hay un tercer lugar.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!