Для входного плоского дерева:
let input = [{
levelId: '1'
}, {
levelId: '1.1'
}, {
levelId: '1.1.1'
}, {
levelId: '1.2'
}, {
levelId: '2'
}, {
levelId: '2.1.1'
}
]
Как лучше всего преобразовать это в многоуровневое дерево, где levelId
определяет уровень дерева:
let output = [{
levelId: '1',
children: [{
levelId: '1.1',
children: [{
levelId: '1.1.1'
}
]
}
]
}, {
levelId: '2',
children: [{
levelId: '2.1.1'
}
]
}
]
Используется Lodash.