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

179
Views
cómo mapear correctamente un obj y devolver un valor único con varios valores idénticos ReactJS

Me gustaría explicar mi problema del día.

actualmente tengo una matriz de objetos

Mapeo esta tabla

 [ { id: "a", location: "FR", zone: "EU" } , { id: "b", location: "FR", zone: "EU" } , { id: "c", location: "ES", zone: "EU" } , { id: "d", location: "ES", zone: "EU" } , ]

para ordenar todos los datos utilizo un useEffect para recuperar solo los valores que necesito

 useEffect(() => { if (data) { const location = data.map((e) => { return { label: e.location, }; }); setLocations(locations); } }, [data]);

esto funciona correctamente.

excepto que me devuelve el siguiente formato

 0: {label: 'FR'} 1: {label: 'FR'} 2: {label: 'ES'} 4: {label: 'ES'}

y me gustaria tener el siguiente formato

 0: {label: 'FR'} 1: {label: 'ES'}

básicamente elimina la clave idéntica

estoy abierto a cualquier propuesta muchas gracias.

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

0

Dado que está utilizando location como una propiedad similar a una identificación que determina la singularidad, puede hacer lo siguiente:

 const data = [ { id: "a", location: "FR", zone: "EU" } , { id: "b", location: "FR", zone: "EU" } , { id: "c", location: "ES", zone: "EU" } , { id: "d", location: "ES", zone: "EU" } , ]; console.log( Array .from(new Set(data.map(d => d.location))) .map(label => ({ label })) )

Esto primero transforma la lista en una matriz de cadenas. Utiliza un Set para deshacerse de cadenas duplicadas. Luego, se transforma al formato de salida deseado.

  • data.map(d => d.location) da [ "FR", "FR", "ES", "ES" ]
  • Array.from(new Set(...)) da [ "FR", "ES" ]
  • (...).map(label => ({ label })) da el resultado final
about 4 years ago · Juan Pablo Isaza Report

0

usar filtro e indexOf

 data = data.filter(function (value, index, array) { return array.indexOf(value) === index; });
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!