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

85
Vistas
Mantenga el objeto principal mientras filtra en una matriz profundamente anidada dentro del objeto

He buscado SO para una solución a esto, pero tengo dificultades para aplicar las soluciones dadas. Estoy usando JavaScript/React, así que necesito una solución en JS.

Se devuelve un objeto de una base de datos con la siguiente estructura,

fuente.fuente.fuente (tres niveles, todos los niños se llaman fuente).

La primera fuente es un objeto, la segunda fuente también es un objeto y la tercera fuente es una matriz con todos los elementos.

Cada elemento de la matriz tiene una propiedad, "isActive", como en

 source.source.source.isActive

Pensé que el siguiente código mantendría el objeto completo, pero pierde los dos nodos principales y todos esos datos (fuente y fuente) y solo devuelve la matriz anidada dentro de source.source. Necesito todo el objeto devuelto de axios filtrado.

 const responseDataFiltered = source.source.source.filter(obj => Boolean(obj.isActive) === true)

Necesito una forma de mantener todos los elementos principales y mostrar solo los elementos de la matriz que tienen isActive === verdadero.

Lo que estoy tratando de lograr es filtrar una respuesta de una base de datos donde los elementos devueltos tienen la propiedad isActive establecida en verdadero, y necesito la estructura principal/elementos principales. Entonces, esencialmente, necesito una copia de la fuente principal del elemento principal con sus datos anidados, pero filtre todo isActive === false.

Obtengo los datos usando Axios de una API. La respuesta es el objeto completo que tiene la matriz profundamente anidada con los miles de elementos que necesito filtrar en isActive. Una vez que el objeto devuelto haya filtrado todo el isActive === falso, quiero pasarlo a un enlace useState y mostrar los datos.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Simplemente puede reemplazar la matriz anidada con los datos del filtro:

 const source = { one: 1, two: 2, source:{ three: 3, four: 4, source: [ {isActive: true}, {isActive: true}, {isActive: false}, {isActive: false}, ], }, }; const actives = source.source.source.filter(({ isActive }) => isActive); const responseDataFiltered = { ...source, source: { ...source.source, source: actives, }, }; console.log(responseDataFiltered);
 .as-console-wrapper { max-height: 100% !important; top: 0 }

about 4 years ago · Santiago Trujillo 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