Lo siguiente es mi matriz - Nombre (categoriesData)
[{"categoryCode":"cat1","name":"Procurement","parentCategoryCode":"ROOT_NODE","active":true,"archive":false,"children":[]}]Hay un objeto y parece - Nombre (categoryData)
{"8596":{"operation":true,"children":[]},"9890":{"operation":true,"children":[{"categoryCode":"8596","name":"Sub-Sub-Sub-Procurement","parentCategoryCode":"9890","active":true,"archive":false}]},"125240":{"operation":true,"children":[{"categoryCode":"9890","name":"Syb-Sub-Procurement","parentCategoryCode":"125240","active":true,"archive":false}]},"dvs":{"operation":true,"children":[]},"cat1":{"operation":true,"children":[{"categoryCode":"125240","name":"Procurement-Sub","parentCategoryCode":"cat1","active":true,"archive":false}]}}En CategoriesData, el objeto tiene hijos y está vacío.
Pero esto será recursivo, el código de categoría es cat1 y cat1 tiene hijos en datos de categoría y en ese hijo de cat1 en datos de categoría tiene código de categoría 125240 y 125240 tiene hijos en datos de categoría y esto continuará hasta el momento en que los hijos de datos de categoría para ese código de categoría específico es vacío.
¿Alguien puede ayudar?
su matriz de datos de categorías como (this.categoryCode y final = {}):
[{"categoryCode":"cat1","name":"Procurement","parentCategoryCode":"ROOT_NODE","active":true,"archive":false,"children":[]}]su categoríaDatos como (this.value1) :
{"8596":{"operation":true,"children":[]},"9890":{"operation":true,"children":[{"categoryCode":"8596","name":"Sub-Sub-Sub-Procurement","parentCategoryCode":"9890","active":true,"archive":false}]},"125240":{"operation":true,"children":[{"categoryCode":"9890","name":"Syb-Sub-Procurement","parentCategoryCode":"125240","active":true,"archive":false}]},"dvs":{"operation":true,"children":[]},"cat1":{"operation":true,"children":[{"categoryCode":"125240","name":"Procurement-Sub","parentCategoryCode":"cat1","active":true,"archive":false}]}}Código mecanografiado
utils(){ for(let i= 0 ; i< this.categoriesData.length; i++){ this.help(this.categoriesData[i]['categoryCode']); this.categoriesData[i]['children'] = this.final['children']; } console.log(this.categoriesData)}
help(code) { if (!this.categoryData[code].children.length) { this.final = this.categoryData[code]['children']; return this.categoryData[code]; } this.help(this.categoryData[code]['children'][0]['categoryCode']); this.final = { ['children']: [{ ...this.categoryData[code]['children'][0], ...this.final }] }}
tu resultado final
[ { "categoryCode": "cat1", "name": "Procurement", "parentCategoryCode": "ROOT_NODE", "active": true, "archive": false, "children": [ { "categoryCode": "125240", "name": "Procurement-Sub", "parentCategoryCode": "cat1", "active": true, "archive": false, "children": [ { "categoryCode": "9890", "name": "Syb-Sub-Procurement", "parentCategoryCode": "125240", "active": true, "archive": false, "children": [ { "categoryCode": "8596", "name": "Sub-Sub-Sub-Procurement", "parentCategoryCode": "9890", "active": true, "archive": false } ] } ] } ] }]