Tengo un objeto de cuenta con cuentas secundarias (rootAccount). Estoy tratando de escribir alguna lógica que tome el objeto rootAccount y busque las cuentas secundarias para ver si son padres de alguna cuenta. Si es así, esas cuentas se agregarán a la cuenta de niños en una nueva propiedad para la cuenta llamada niños. Se vuelve un poco más complejo porque cada cuenta nueva posiblemente puede tener cuentas secundarias y también se puede agregar como una propiedad nueva a la cuenta. Así que esto seguirá anidando objetos posiblemente hasta que no haya más cuentas de niños.
¿Hay un patrón/método común para usar en este escenario? Puedo llegar tan lejos como para filtrar el objeto que es el padre, pero no estoy seguro de cómo agregarlo al objeto rootAccount y luego repetir esta lógica para que busque nuevas cuentas secundarias y siga agregando cuentas secundarias anidadas.
var childAccount = [{Name: "Johnson Little Plastics", Id: '4', parentAccount: '3'}]; var rootAccount = { Name: "Johnson Holding Company", Id: '1', children: [ {Name: "Johnson Metals", Id: '2', parentAccount: '1'}, {Name: "Johnson Plastics", Id: '3', parentAccount: '1'} ] } for(var x of childAccount){ var f = rootAccount.children.filter((account,i) => { return account.Id == x.parentAccount; }); console.log(f[0].Id); }Cómo se verá después de que se ejecute:
var rootAccount = { Name: "Johnson Holding Company", Id: '1', children: [ {Name: "Johnson Metals", Id: '2', parentAccount: '1'}, {Name: "Johnson Plastics", Id: '3', parentAccount: '1', children: [{Name: "Johnson Little Plastics", Id: '4', parentAccount: '3'}] } ] }