Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
Filtrado de objetos anidados a través de atributos con Javascript-

Tengo una matriz de objetos anidados, quiero filtrar esto para devolver solo el objeto tjat contiene un autor que tiene una edad === 21.

Intenté implementar esta respuesta SO , pero sigo devolviendo 'x no es una función'.

 let arrayOfElements = [ { author: { name: 'Kim', age: 21 }, employment: { employer: 'Logiothech', role: 'Human Resources' } } { author: { name: 'John', age: 62 }, employment: { employer: 'Logiothech', role: 'Human Resources' } } { author: { name: 'Mary', age: 31 }, employment: { employer: 'Logiothech', role: 'Human Resources' } } ];

Lo que he intentado: (creo que estoy usando subElements incorrectamente, pero no estoy seguro de qué reemplazar correctamente en su lugar)

 let filteredMap = array_of_elements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.author.age === 21)} })
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Solo necesita el método de matriz .filter. el método .map es cuando desea realizar un cambio en cada elemento de la matriz. Esto es lo que se me ocurrió:

 let filteredArray = arrayOfElements.filter((element) => element.author.age == 21)

Código completo:

 let arrayOfElements = [ { author: { name: 'Kim', age: 21 }, employment: { employer: 'Logiothech', role: 'Human Resources' } }, { author: { name: 'John', age: 62 }, employment: { employer: 'Logiothech', role: 'Human Resources' } }, { author: { name: 'Mary', age: 31 }, employment: { employer: 'Logiothech', role: 'Human Resources' } } ]; let filteredArray = arrayOfElements.filter((element) => element.author.age == 21) console.log(filteredArray)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría estar equivocado, pero parece que lo estás pensando demasiado. Prueba esto:

 arrayOfElements.filter(element => element.author.age === 21);

Esto devolverá una matriz de objetos (en este caso uno) que tienen un autor cuya edad es 21.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda