Получить узлы по типу

Medium
TreeRecursionYandexSberAvito

Дано дерево следующего формата:

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

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

Примеры

Пример 1
Вход:
{ "type": "nested", "children": [] }, "added"
Выход:
[]
Пример 2
Вход:
{ "type": "nested", "children": [ { "type": "added", "value": 10 }, { "type": "nested", "children": [ { "type": "added", "value": 20 }, { "type": "nested", "children": [{ "type": "added", "value": 30 }] } ] }, { "type": "added", "value": 40 } ] }, "added"
Выход:
[{"type":"added","value":10},{"type":"added","value":20},{"type":"added","value":30},{"type":"added","value":40}]
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода