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

209
Visualizações
eliminar datos duplicados de la API de Spotify en Reactjs

así que estoy obteniendo datos de la API de Spotify en JSON pero los datos que estoy recibiendo están duplicados y quiero eliminar los datos duplicados...
Entonces, ¿qué hace la siguiente función? Obtiene los datos de la API de Spotify y, como puede ver, estoy almacenando los datos obtenidos en ```setAlbums()``` (que es una matriz useState de objetos const).
 const artistInfoHandler = (id) => { setLoading(true); setAlbums([]); fetch(`https://api.spotify.com/v1/artists/${id}/albums`, { headers: { Accept: "application/json", Authorization: `Bearer ${data.access_token}`, "Content-Type": "application/json", }, }) .then((response) => response.json()) .then((response) => { console.log(response); for (let i = 0; i < response.items.length; i++) { setAlbums((old) => [ ...old, { albumTitle: response.items[i].name, albumImage: response.items[i].images[0].url, }, ]); } }) .catch((error) => console.log(error)); setLoading(false); };

y esta es la salida:
 0: {albumTitle: 'Certified Lover Boy', albumImage: 'xxxxxxxxxxxx'} 1: {albumTitle: 'Certified Lover Boy', albumImage: 'xxxxxxxxxxxxxxxxxx'} 2: {albumTitle: 'Dark Lane Demo Tapes', albumImage: 'xxxxxxxxxxxxxxxxxx'} 3: {albumTitle: 'Dark Lane Demo Tapes', albumImage: 'xxxxxxxxxxxx'} 4: {albumTitle: 'Care Package', albumImage: 'xxxxxxxxxxxx'} 5: {albumTitle: 'Care Package', albumImage: 'xxxxxxxxxxxx'} 6: {albumTitle: 'So Far Gone', albumImage: 'xxxxxxxxxxxx'} 7: {albumTitle: 'Scorpion', albumImage: 'xxxxxxxxxxxx'} 8: {albumTitle: 'Scorpion', albumImage: 'xxxxxxxxxxxx'} 9: {albumTitle: 'More Life', albumImage: 'xxxxxxxxxxxx'} 10: {albumTitle: 'More Life', albumImage: 'xxxxxxxxxxxx'} 11: {albumTitle: 'Views', albumImage: 'xxxxxxxxxxxx'} 12: {albumTitle: 'Views', albumImage: 'xxxxxxxxxxxx'} 13: {albumTitle: 'What A Time To Be Alive', albumImage: 'xxxxxxxxxxxx'} 14: {albumTitle: 'What A Time To Be Alive', albumImage: 'xxxxxxxxxxxx'} 15: {albumTitle: "If You're Reading This It's Too Late", albumImage: 'xxxxxxxxxxxx'} 16: {albumTitle: "If You're Reading This It's Too Late", albumImage: 'xxxxxxxxxxxx'} 17: {albumTitle: 'Nothing Was The Same (Deluxe)', albumImage: 'xxxxxxxxxxxx'} 18: {albumTitle: 'Nothing Was The Same (Deluxe)', albumImage: 'xxxxxxxxxxxx'} 19: {albumTitle: 'Nothing Was The Same', albumImage: 'xxxxxxxxxxxxxxxxxx'}




ahora, cuando NO estoy usando una matriz de objetos, es decir, cuando estoy almacenando los datos en un estado diferente, entonces puedo eliminar la duplicación con esto: const newAlbums = [...new Set(albums)] pero cuando estoy usando una matriz de objetos no puedo hacerlo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En tu caso, creo que deberías hacer:

 //removes duplicate names var filteredItems = response.items.filter((v,i,a)=>a.findIndex(v2=>(v2.name===v.name)) === i); //maps to a new object array var newArray = filteredItems.map(x => ({ albumTitle: x.name, albumImage: x.images[0].url, }));
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