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 } ] } ] }] }