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

169
Vistas
El árbol de orden N hace que todos los padres sean falsos si alguno de los últimos hijos es verdadero

1. Tengo un caso de uso en el que quiero que el padre se haga falso si el último hijo "isSelected" es verdadero. Por ejemplo, el id 4 isSelcted es verdadero, por lo que los padres de 4 son 3,2,1, cuya clave en la que se hizo clic debe hacerse falsa.

2.Ejemplo 2: si el Id. 7 isSelected es verdadero, entonces su padre 6,2,1 cuya tecla se hizo clic debe hacerse falsa.

3. Tengo un árbol en angular, en la página de edición tendré datos en el formato anterior. Tengo que expandir el árbol si se selecciona alguno de los niños. Por ejemplo, id 4 es el último elemento secundario que contiene isSelected falg y es verdadero. Por lo tanto, tengo que hacer que todos los padres hagan clic en falso para que, al usar la propiedad ngbBootstrap [collapse], expanda el árbol.

4.reduce se usa para verificar si algún elemento secundario tiene un valor o si se hizo clic, si es así, agréguelo al acumulador, !1 se usa para inicializar el acumulador a 0. del valor que es falso. Para comprobar el final del árbol. es decir, el último elemento secundario isSelcted se utiliza para el operador ternario.

5. Este código no funciona porque me falta algo, corrija dónde me está yendo mal.

 let update = o => o.children ? !o.clicked = o.children.reduce((a, c) => a || o.clicked || update(c), !1) : o.isSelected; update(object); console.log(object); let object = { children: [{ ID: 1, clicked: false, children: [{ ID: 2, clicked: ture, children: [{ ID: 3, clicked: true, children: [{ ID: 4, isSelected: true }, { ID: 5, isSelected: true } ] }, { ID: 6, clicked: false, children: [{ ID: 7, isSelected: false }, { ID: 8, isSelected: false } ] } ] }, { ID: 9, clicked: true, children: [{ ID: 10, isSelected: false }, { ID: 11, isSelected: true } ] } ] }] }
about 4 years ago · Juan Pablo Isaza
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