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

201
Visualizações
.map() removes duplicates but I want to keep duplicates?

I have this large array of API data that I filter down to a smaller amount. The issue is that the current system I made uses .map() to set an order preference for that data but it removes any duplicates. The data is filtered by sports league so if two games from the same league are played two should go through to the final array, but only one goes through. The ordered array removes duplicates.

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)

Here is the desiredOrdered array, each league is designated a number and then the leagues are ranked best to worst.

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,
];

Here is the API output so you can see where the id is derived (there are over 100 of these elements, this is entry 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

So using the output above, I need to make it so another game with id 39 is filtered through into the array. I have tried a lot of things to make it work but it is not working.

If you want to play with 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 does not remove duplicates, Set does.

See MDN:

Set objects are collections of values. You can iterate through the elements of a set in insertion order. A value in the Set may only occur once; it is unique in the Set's collection.

If you want to allow duplicates, don't use a Set.


Also MDN

The find() method returns the first element in the provided array that satisfies the provided testing function. If no values satisfy the testing function, undefined is returned.

If you want to match every result, then use filter() instead.

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

You might want to flatten the array you assign to 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