Как использовать метод forEach внутри рекурсивной функции JavaScript - PullRequest
0 голосов
/ 25 марта 2020

Предполагается, что это простая рекурсивная функция обхода дерева, которая возвращает массив значений поддерева, начиная с данного узла.

У меня проблема с методом Array.forEach внутри рекурсивной функции. Возвращаемое значение подмножества не определено. Но когда я отслеживаю его в режиме отладки, массив выглядит нормально.

const sumUpSubtree = node => {
subset = [...subset, node.getValue()];
let childrenArr = node.getChildren(),
  i = 0;

if (node.getChildren().length)
  node.getChildren().forEach(child => {
    return sumUpSubtree(child);
  });
else return subset;};

Я полагаю, это связано с тем, что этот возврат находится внутри анонимной функции, а не в самой рекурсивной функции. Можно ли использовать forEach для достижения этой цели?

node.getChildren().forEach(child => {
    return sumUpSubtree(child);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...