Как отсортировать элементы по иерархии (+алфавиту)?
Пример
схемы
Есть массив элементов:
const elements = [{
id: 1,
name: "JOBS",
relations: [],
}, {
id: 2,
name: "CUSTOMERS",
relations: []
}, {
id: 3,
name: "PRODUCTS",
relations: [9],
}, {
id: 4,
name: "PRODUCT_VIDEOS",
relations: [3, 9],
}, {
id: 5,
name: "USER_TOKENS",
relations: [9]
}, {
id: 6,
name: "USER_VIEWS",
relations: [9]
}, {
id: 7,
name: "PRODUCT_ACCESS",
relations: [3]
}, {
id: 8,
name: "PRODUCT_COMMENTS",
relations: [3, 9]
}, {
id: 9,
name: "USERS",
relations: []
}]
У элемента есть relations в котором ид элементов от которых он зависит. Как отсортировать элементы по иерархии, чтобы зависимые элементы были только после "родителей"
Результат должен быть:
CUSTOMERS
JOBS
USERS
PRODUCTS
PRODUCT_ACCESS
PRODUCT_COMMENTS
PRODUCT_VIDEOS
USER_TOKENS
USER_VIEWS