Ответы пользователя по тегу Алгоритмы
  • Как преобразовать такой массив в нумерованный многоуровневый список?

    Finesse
    @Finesse
    Реализация алгоритма на JavaScript:

    function treeToPlainList(tree, idPrefix = '') {
        let list = [];
    
        // Проходит по каждому элементу массива
        tree.forEach((item, index) => {
            // Добавляет к элементу свойство id
            const itemForPlainList = {...item, id: idPrefix + (index + 1)};
            // Удаляет из элемента свойство children
            delete itemForPlainList.children; 
            // Добавляет элемент в итоговый массив
            list.push(itemForPlainList);
    
            if (item.children) {
                // Добавляет в конец итогового массива элементы, которые возвращает функция treeToPlainList
                list = [...list, ...treeToPlainList(item.children, idPrefix + (index + 1) + '.')];
            }
        });
    
        return list;
    }
    
    const list = treeToPlainList(tree); // tree — изначальный массив, list — результат
    Ответ написан