Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

95
Views
Árbol de grado n de JavaScript
  1. Necesito cambiar la propiedad en la que se hizo clic a verdadero de un padre si todos los niños en los que se hizo clic son verdaderos. entonces, en este caso, ID: 14,15 ha hecho clic en la propiedad como verdadera. Por lo tanto, los padres que han hecho clic en ID 11 deben hacerse realidad.
  2. Si 11,12,14,15 son verdaderos, entonces 4 tiene que ser verdadero.
 let obj = {children:[ { ID:1, clicked: false, children: [ { ID:4, clicked: false, children: [ { ID:11, clicked: false, children: [ { ID:14, clicked: true, }, { ID:15, clicked: true, } ] }, { ID:12, clicked: false, } ] }, { ID:5, clicked: false, } ] } ] }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Podría tomar un algoritmo de búsqueda primero en profundidad y si todos los elementos secundarios contienen clicked: true , el elemento principal obtiene una actualización.

 const update = object => { if (!object.children) return object.clicked; return object.clicked = object.children.every(update); }, object = { children: [{ ID: 1, clicked: false, children: [{ ID: 4, clicked: false, children: [{ ID: 11, clicked: false, children: [{ ID: 14, clicked: true }, { ID: 15, clicked: true }] }, { ID: 12, clicked: false }] }, { ID: 5, clicked: false }] }] }; update(object); console.log(object);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report

0

Nina dio una gran respuesta para cuando quieres mutar la entrada.

Aquí hay uno simple que crea un nuevo objeto:

 const consolidate = ({clicked, children = [], ...rest}, _, __, kids = children .map (consolidate)) => ({ ...rest, clicked: clicked || (kids .length > 0) && kids .every (k => k .clicked), ...(kids .length ? {children: kids} : {}) }) const obj1 = {children: [{ID: 1, clicked: false, children: [{ID: 4, clicked: false, children: [{ID: 11, clicked: false, children: [{ID: 14, clicked: true}, {ID: 15, clicked: true}]}, {ID: 12, clicked: false}]}, {ID: 5, clicked: false}]}]}; // with 12 switched to `true` const obj2 = {children: [{ID: 1, clicked: false, children: [{ID: 4, clicked: false, children: [{ID: 11, clicked: false, children: [{ID: 14, clicked: true}, {ID: 15, clicked: true}]}, {ID: 12, clicked: true}]}, {ID: 5, clicked: false}]}]}; console .log ('obj1', consolidate (obj1)) console .log ('obj2', consolidate (obj2))
 .as-console-wrapper {max-height: 100% !important; top: 0}

Recurrimos a los elementos children , si los hay, y luego regeneramos el objeto evaluando la propiedad en la que se clicked en cada uno.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!