Необходимо обойти все дерево и поменять название ключей, с одного имени на другой.Моя функция меняет name на key везде кроме последнего элемента массива с именем "Tom"
const data = [
{
name: 'Stas',
age: 40,
children: []
},
{
name: 'Pavel',
age: 40,
children: [
{
name: 'Dmitri',
age: 20,
children:[]
},
{
name: 'Sasha',
age: 15,
children:[
{
name:'Alexey',
age: 34,
children:[]
}
]
}
]
},
{
name: 'Tom',
age: 22,
cildren:[
{
name: 'Hack',
age: 44,
children:[]
},
{
name: 'Hack',
age: 44,
children:[]
}
]
}
]
const traversal= arr =>
(arr || []).reduce((acc,cur,ind,arr)=>{
if(cur.children === undefined){
return acc
} else if(cur.children.length){
acc = [...acc, {key: cur.name, age: cur.age, children: traversal(cur.children)}]
}else{
acc = [...acc, {key: cur.name, age: cur.age, children: cur.children}]
}
return acc
},[])