Предполагается, что это простая рекурсивная функция обхода дерева, которая возвращает массив значений поддерева, начиная с данного узла.
У меня проблема с методом 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);
});