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

203
Vistas
.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 Respuestas
Responde la pregunta

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