Дан объект с категориями магазина. У каждой категории есть айдишник и название, а некоторые категории содержат подкатегории. Любая подкатегория в свою очередь также может содержать свои подкатегории.
const catalog = { id: "1", name: "Электроника", children: [ { id: "2", name: "Товары для компьютера", children: [ { id: "3", name: "Оперативная память", children: [] }, { id: "4", name: "Процессоры", children: [] }, ], }, { id: "5", name: "Мобильные телефоны", children: [] }, ], };
Для того чтобы по категории быстро определять вложенные категории, необходимо собрать словарь id → childrenIds
.
console.log(id2children(catalog)); const expected = { "1": ["2", "5"], "2": ["4", "3"], "3": [], "4": [], "5": [], }
В возвращаемом объекте ключами являются айдишники категорий. Значением является массив с айдишниками непосредственных подкатегорий. Если у категории нет подкатегорий, по ключу должен лежать пустой массив.