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

200
Views
.map () elimina los duplicados pero quiero mantener los duplicados?

Tengo esta gran variedad de datos de API que filtro a una cantidad más pequeña. El problema es que el sistema actual que hice usa .map() para establecer una preferencia de orden para esos datos, pero elimina los duplicados. Los datos se filtran por liga deportiva, por lo que si se juegan dos juegos de la misma liga, dos deberían pasar a la matriz final, pero solo uno pasa. La matriz ordenada elimina los duplicados.

 const json = (await res.json())?.response; const ordered = desiredOrder.map((id) => json.find(({ league }) => league?.id === id)); const filtered = [...new Set(ordered)].filter(item => item !== undefined)

Aquí está la matriz ordenada deseada, a cada liga se le asigna un número y luego las ligas se clasifican de mejor a peor.

 var desiredOrder = [ 1, 2, 3, 4, 5, 6, 7, 9, 10, 29, 30, 31, 32, 33, 34, 39, 45, 48, 140, 142, 135, 137, 78, 81, 61, 65, 66, 88, 94, 96, 253, 203, 262, 179, 185, 144, 188, 169, 40, 41, 42, 43, 235, 207, 218, 141, 136, 333, 307, 197, 62, 79, 80, 128, 130, 292, 98, 101, 103, 106, 113, 119, 283, 71, 73, 265, 239, 211, 89, ];

Aquí está la salida de la API para que pueda ver de dónde se deriva la identificación (hay más de 100 de estos elementos, esta es la entrada 0)

 0: fixture: {id: 710877, referee: 'Anthony Taylor, England', timezone: 'UTC', date: '2022-05-19T18:45:00+00:00', timestamp: 1652985900, …} goals: {home: 3, away: 2} league: {id: 39, name: 'Premier League', country: 'England', logo: 'https://media.api-sports.io/football/leagues/39.png', flag: 'https://media.api-sports.io/flags/gb.svg', …} score: {halftime: {…}, fulltime: {…}, extratime: {…}, penalty: {…}} teams: {home: {…}, away: {…}} [[Prototype]]: Object

Entonces, usando la salida anterior, necesito hacer que otro juego con id 39 se filtre en la matriz. He intentado muchas cosas para que funcione, pero no funciona.

Si quieres jugar con WebDev --> https://footballify.net/test

Github- https ://github.com/Footballify/Footballify.github.io/tree/main/test

=nn

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

0

map no elimina duplicados, Set sí.

Ver MDN :

Los objetos establecidos son colecciones de valores. Puede iterar a través de los elementos de un conjunto en orden de inserción. Un valor en el Conjunto solo puede ocurrir una vez ; es único en la colección del Set.

Si desea permitir duplicados, no use un Set .


También MDN

El método find() devuelve el primer elemento de la matriz proporcionada que satisface la función de prueba proporcionada. Si ningún valor satisface la función de prueba, se devuelve undefined.

Si desea hacer coincidir todos los resultados, utilice filter() en su lugar.

El método filter() crea una nueva matriz con todos los elementos que pasan la prueba implementada por la función proporcionada.

Es posible que desee aplanar la matriz que asigna a ordered

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!