Задача

Дана древовидная структура. Необходимо написать функцию getNodes(tree, type), которая возвращает все ноды в порядке следования, соответствующие переданному типу. Глубина вложенности любая.

const tree = {
    type: 'nested',
    children: [
        { type: 'added', value: 42 },
        {
            type: 'nested',
            children: [{ type: 'added', value: 43 }],
        },
        { type: 'added', value: 44 },
    ],
};

Пример

const addedItems = getNodes(tree, 'added');
 
// Результат:
// [
//   { type: 'added', value: 42 },
//   { type: 'added', value: 43 },
//   { type: 'added', value: 44 },
//   ...
// ]

Решение

См. также