La respuesta original de la API es la siguiente
org = [ { title: "New", count: 1 }, { title: "Parent::Child::GrandChild", count: 0 }, { title: "Parent::Child", count: 0 }, ]¿Cómo puedo convertir un nuevo objeto analizando el título de la respuesta anterior?
newObtj = [ { title: "New", count: 1, child: [] }, { title: "Parent", count: 0, child: [ { title: "Child", count: 0, child: [{ title: "GrandChild", count: 0, child: [] }] } ] }, { title: "Parent", count: 0, child: [{ title: "Child", count: 0, child: [] }] }, ]¡Gracias de antemano!
Debe tomarse el tiempo para pensar cómo desea que se estructure su nuevo objeto. Para comenzar, así es como tomaría una cadena delimitada y construiría un objeto a partir de ella:
const treeString = 'Parent::Child::GrandChild'; // input string const treeParts = treeString.split('::'); // split into levels var tree = []; // will contain the final tree for this input var count = 0; // input count var child = []; // variable to hold children we have processed // loop through input from lowest level (GrandChild) up to top level (Parent) for (var i = treeParts.length - 1; i>=0; i--) { // Create a child element (for top level this will be added to Tree) child = { title: treeParts[i], count: count, child: [ child ] }; } // Finally add to tree tree.push(child);Probablemente querrá convertir esto en una función y llamarla para cada elemento en su objeto original.