Tengo JSON con la siguiente estructura:
{ "name":"Scorpiones", "children":[ { "name":"Parabuthus", "children":[ { "name":"Parabuthus schlechteri" }, { "name":"Parabuthus granulatus" } ] }, { "name":"Buthidae", "children":[ { "name":"Androctonus", "children":[ { "name":"Androctonus crassicauda" }, { "name":"Androctonus bicolor" } ] } ] } ] }Es necesario ordenar los elementos por el campo de nombre en cada nivel de la jerarquía. ¿Cómo se puede hacer esto con la ayuda de JS?
Puede usar Object.keys que devuelve una matriz que contiene todas las claves de objeto, luego puede simplemente ordenar esa matriz.
const getSortedKeys = (obj) => { return Object.keys(obj).sort(); }Y para lanzar todas las claves anidadas de su objeto, puede usar la recursividad:
const trav = (obj) => { if(obj instanceof Array) { // go inside each object in the array obj.forEach(item => trav(item)) } else if(typeof obj === "object") { // sort object keys let keys = getSortedKeys(obj); // do whatevery you want... // go the the next levels keys.forEach(key => trav(obj[key])) } }