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

206
Visualizações
.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 Respostas
Responde à pergunta

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