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

90
Views
Cómo filtrar y mapear una lista de elementos apuntando a una propiedad con javascript

Estoy trabajando en un proyecto ReactJS y en mi estructura de datos, tengo 2 botones: ATM y ESTACIONAMIENTO:

 buttons: [ { value: 'ATM', icon: 'atm', floors: [ { value: 'L1', floor: 0, }, { value: 'L2', floor: 0, }, ] }, { value: 'PARKING', icon: 'parking', floors: [ { value: 'L1', floor: 0, }, { value: 'L2', floor: 0, }, ] }, ],

Quiero apuntar a los valores de pisos disponibles: 'L1' , 'L2' de ATM y mostrarlos como títulos individuales en HTML.

Mi enfoque es primero aplicar un filtro para cajero automático, luego mapear los pisos de la siguiente manera:

 const filteredButton = _.filter(buttons, {value : 'ATM'}); // Filter for ATM const mappedAtm = filteredButton.map((item)=>(item.floors)) // Map for Floors const mappedFloor = mappedAtm.map((floors)=>(floors.value)) // Map for Floors values

Sin embargo, cuando console.log(mappedFloor) devuelve indefinido

Mi resultado esperado es: "L1", "L2"

Idealmente, si hago que mapedFloor funcione, lo mostraría en html así (en el navegador debería mostrar 2 etiquetas de intervalo):

 <p className="floors"> { mappedFloor.map((items, i) => ( <span key={i}> {items} </span> )) } </p>

Cualquier sugerencia y consejo son muy apreciados.

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

0

Su filtro devuelve una matriz, el primer mapa lo convierte en una matriz de matriz y el segundo espera que sea una matriz de objetos.

Para arreglar eso, puede usar un Array.prototype.find en lugar del filtro:

 buttons.find((e) => e.value === 'ATM').floors.map((e) => e.value)

O trate su último mapa como una matriz de una matriz de objetos y no como una matriz de objetos.

about 4 years ago · Juan Pablo Isaza Report

0

También puede hacer eso haciendo una función común que se ejecutará en el evento button onClick que devolverá que lo que quiere es asumir y en la función pasar un argumento de matriz y propiedad que desea filtrar

 // function that filter with respect to value property and return floors array, i assume that what you want const filterFloors = (floorsArray,filteredProperty) => { return floorsArray.find((item) => {if (item.value === filteredProperty) return item.floors }).floors } console.log(filterFloors(buttons,'ATM')); console.log(filterFloors(buttons,'PARKING'))
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!