Разрешить дерево элементов и сделать плоский массив из получить все value
const tree = {
value: 1,
children: [
{
value: 2,
children: [
{ value: 3 }
]
},
{
value: 4,
children: [
{ value: 5 },
{ value: 6 }
]
}
]
};
Решение:
function getTreeValues(tree) {
// Создаём стек, начиная с корневого узла
const stack = [tree];
// Массив для хранения результатов
const result = [];
// Пока в стеке есть элементы
while(stack.length > 0) {
// Извлекаем последний узел из стека
const node = stack.pop();
// Если у узла есть значение
if(node.value !== undefined) {
// Добавляем значение в результат
result.push(node.value);
}
// Если у узла есть дочерние элементы
if(node.children?.length) {
// Добавляем их в стек
stack.push(node.children);
}
}
// Возвращаем собранные значения
return result;
}