Tengo un objeto con campos anidados que subelemento con nombre. Necesito cambiar los nombres de este campo a los niños.
¿Cómo se puede implementar ordenadamente esta funcionalidad? ¿Quizás hay formas además de la recursividad?
let data = [ { name: 'Alex', subItem: [ { name: 'Den', subItem: [ ] } ] } ] function transformData = (data) => { return data.map(stat=>{ }) } console.log(transformData(data))//debería ser
let data = [ { name: 'Alex', children: [ { name: 'Den', children: [] } ] } ]Javascript ya incluye un transformador de objetos recursivo, JSON. stringify con función de replacer :
let data = [ { name: 'Alex', subItem: [ { name: 'Den', subItem: [ {name: 'Foo', subItem: []} ], } ] } ] JSON.stringify(data, function(_, v) { if (v.subItem) { v.children = v.subItem delete v.subItem } return v }) console.log(data)En el caso simple como este, también puede simplemente manipular la cadena JSON directamente:
newData = JSON.parse( JSON.stringify(data) .replaceAll(`"subItem":`, `"children":`))