Back to tasksGet help with live coding in real time with Sobes Copilot
Junior — Senior
22
Построение иерархии категорий из плоского массива
Companies where asked:
Фоксфорд
Task condition
Дан массив объектов‑категорий, где каждое имеет поле title – название категории, и поле parent – название её родительской категории. Значение null в parent указывает на корневой уровень. Необходимо реализовать функцию createCategoryTree, принимающую такой массив и возвращающую структуру дерева: каждый узел содержит title, а при наличии дочерних элементов — массив children с аналогичными объектами. В комментариях к коду приведён пример входных данных и ожидаемого результата.
const sourceCategories = [
{
"title": "Приготовление напитков",
"parent": "Техника для кухни"
},
{
"title": "Техника для дома",
"parent": "Бытовая техника"
},
{
"title": "Варочные панели",
"parent": "Встраиваемая техника"
},
{
"title": "Бытовая техника",
"parent": null
},
{
"title": "Встраиваемая техника",
"parent": "Бытовая техника"
},
{
"title": "Духовые шкафы",
"parent": "Встраиваемая техника"
},
{
"title": "Продукты питания",
"parent": null
},
{
"title": "Электрочайники и термопоты",
"parent": "Техника для кухни"
},
{
"title": "Вытяжки",
"parent": "Встраиваемая техника"
},
{
"title": "Техника для кухни",
"parent": "Бытовая техника"
}
];
function createCategoryTree(flatList) {
return
}
console.log(createCategoryTree(sourceCategories))
/*
[
{
title: "Бытовая техника",
children: [
{
title: "Встраиваемая техника",
children: [
{ title: "Варочные панели" },
{ title: "Духовые шкафы" },
{ title: "Вытяжки" }
]
},
{
title: "Техника для кухни",
children: [
{ title: "Электрочайники и термопоты" },
{ title: "Приготовление напитков" }
]
},
{
title: "Техника для дома"
}
]
},
{
title: "Продукты питания",
}
]
*/