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

267
Views
Cambio de estado de padres/hijos en función del valor booleano

Tengo una matriz de la siguiente manera:

 [ { data: { name: "Cloud", size: "20mb", type: "Folder", DisplayStatus: 1, }, children: [ { data: { id: 1, name: "backup-1.zip", size: "10mb", type: "Zip", isDisplayStatus: 1, }, }, { data: { id: 2, name: "backup-2.zip", size: "10mb", type: "Zip", isDisplayStatus: 1, }, }, ], }, { data: { name: "Desktop", size: "150kb", type: "Folder", DisplayStatus: 0, }, children: [ { data: { id: 3, name: "note-meeting.txt", size: "50kb", type: "Text", isDisplayStatus: 0, }, }, { data: { id: 4, name: "note-todo.txt", size: "100kb", type: "Text", isDisplayStatus: 1, }, }, ], }, ];

Tengo un método en el que recibiré dos argumentos. Uno es valor booleano y otro es id.

  1. Si el valor booleano es falso, entonces necesito encontrar el elemento en la matriz para la identificación que viene como argumento del método y establecer el campo "isDisplayStatus" en 0.

  2. Si el valor booleano es verdadero, entonces necesito encontrar el elemento en la matriz para la identificación que viene como argumento del método y establecer el campo "isDisplayStatus" en 1.

  3. Si para cualquier hijo "isDisplayStatus" es 0, entonces "DisplayStatus" en el padre debe establecerse como 0. Si todos los hijos "isDisplayStatus" es 0, entonces para el padre "DisplayStatus" debe ser 0. Si todos los hijos "isDisplayStatus" es 1, entonces para el padre "DisplayStatus" debe ser 1.

Mi intento:

 myMethod(flag, data) { if (flag == true) { this.isDisplayStatus = 1; } else if (flag == false) { this.isDisplayStatus = 0; } this.myArray = this.myArray.reduce( (f, i) => [ ...f, { ...i, children: i.children.map((child) => ({ ...child, data: { ...child.data, ...(child.data.id === data.id ? { isDisplayStatus: this.isDisplayStatus, } : {}), }, })), }, ], [] ); }

Puedo lograr el punto 1 y 2 pero no puedo lograr el punto 3. Por favor ayuda

¿Cómo puedo hacer esto?

about 4 years ago · Juan Pablo Isaza
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!