Мне нужно рекурсивно получить всех детей от вложенного объекта. Я уже написал функцию, которая это делает (вроде как), но я думаю, что ее можно улучшить.
Как сделать его короче и чище?
Я включил данные, которые использую для тестирования, а также написанную мной функцию, которую нужно улучшить.
let data = [{
id: 1,
child: {
id: 2,
child: {
id: 3,
child: {
id: 4,
child: null
}
}
}
},
{
id: 5,
child: {
id: 6,
child: null
}
}
];
// function
for (let cat of data) {
cat.children = getCategoryChild(cat);
console.log(cat.children)
}
function getCategoryChild(cat) {
let t = [];
if (cat.child != null) {
t.push(cat.child);
let y = getCategoryChild(cat.child);
if (y.length > 0) {
for (let i of y) {
t.push(i)
}
}
}
return t;
}
Ожидаемый результат:
[{id: 1, children: [{id: 2}, {id: 3}, {id: 4}]}, {id: 5, children: [{id: 6}]}]
Uncaught SyntaxError: Unexpected identifier
и после того, как вы исправите запятую тамUncaught TypeError: Cannot read property 'data' of undefined
, кажется, в данный момент не работает - person CertainPerformance   schedule 12.02.2019[{id: 1, children: [{id: 2}, {id: 3}, {id: 4}]}, {id: 5, children: [{id: 6}]}]
- person Carla   schedule 12.02.2019