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

238
Visualizações
¿Cómo filtrar json complejo en condición anidada en json?

Tengo una serie de objetos complejos que necesito filtrar en función de varias condiciones.

 var myList= [ { "UserId": 1, "UserDetails": { "Department": [ { "Name": "dept1" } ], "Projects": [ { "Name": "Project1" }, { "Name": "Project2" } ] } }, { "UserId": 2, "UserDetails": { "Department": [ { "Name": "dept2" } ], "Projects": [ { "Name": "Project3" }, { "Name": "Project4" } ] } }, { "UserId": 3, "UserDetails": { "Department": [ { "Name": "dept3" } ], "Projects": [ { "Name": "Project5" }, { "Name": "Project6" } ] } } ]

Quiero filtrar en dos condiciones: Departamento-->El nombre es "dept3" o existe un proyecto con Nombre->"Proyecto3"

 var filteredElements=this.myList.filter((x)=>x.UserDetails.filter((y)=>y.Department... ??

¿Cómo puedo escribir código para filtrar estas dos condiciones?

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

0

myList.filter(i => i.UserDetails.Department.some(d => d.Name === 'dept3') || i.UserDetails.Projects.some(p => p.Name === 'Project3'))
about 4 years ago · Juan Pablo Isaza Relatório

0

Para satisfacer la condición

  1. el usuario pertenece a un departamento "dept3"

    user.UserDetails.Department.some(department => department.Name == "dept3")

  2. hay un proyecto llamado "Proyecto3"

    user.UserDetails.Projects.some(project => project.Name == "Project3")

Ahora encadenándolo,

 var filteredElements = this.myList.filter(user => user.UserDetails.Department.some(department => department.Name == "dept3") || user.UserDetails.Projects.some(project => project.Name == "Project3"))
about 4 years ago · Juan Pablo Isaza Relatório

0

No puede usar el filtro en UserDetails ya que no es una matriz sino un objeto.

Aplicar find en Department y Projects con condición OR entre ellos con la condición requerida.

 var myList= [ { "UserId": 1, "UserDetails": { "Department": [ { "Name": "dept1" } ], "Projects": [ { "Name": "Project1" }, { "Name": "Project2" } ] } }, { "UserId": 2, "UserDetails": { "Department": [ { "Name": "dept2" } ], "Projects": [ { "Name": "Project3" }, { "Name": "Project4" } ] } }, { "UserId": 3, "UserDetails": { "Department": [ { "Name": "dept3" } ], "Projects": [ { "Name": "Project5" }, { "Name": "Project6" } ] } } ] var filteredElements = myList.filter(x =>x.UserDetails.Department.find(d => d.Name == "dept3") || x.UserDetails.Projects.find(p => p.Name == "Project3")) console.log(filteredElements)

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