Sobes.tech
Назад к задачам
Junior — Senior
26

Обнаружить и исправить недочёты в функции распределения категорий

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В данном фрагменте JavaScript‑кода реализована функция, предназначенная для объединения списка категорий с новой категорией и обновления структуры дерева категорий. Однако в реализации присутствуют логические ошибки, которые приводят к некорректному изменению исходных данных.

export const distributionCategories = (catList, rootArr, newCat) => {
    Object.assign(catList, newCat);

    const rootSet = new Set(rootArr);

    Object.keys(newCat).map(Number).forEach((categoryId) => {
        const curCat = catList[categoryId];
        if (curCat.level == 0) {
            rootSet.add(categoryId);
        } else {
            const childSet = new Set(catList[curCat.parent].children);
            childSet.add(categoryId);
            catList[curCat.parent].children = Array.from(childSet);
        }
    });
    return [catList, rootSet];
};

Ваша задача — проанализировать код, выявить причины неправильного поведения и предложить исправления, сохранив исходную сигнатуру функции и её общую логику.