Я сделал нахождение среднего значение таким образом:
const average = (graph) => {
return sum(graph) / count(graph);
};
const sum = (graph) => {
return graph.children ? graph.children.map(sum).reduce((item1, item2) => item1 + item2, graph.value) : graph.value;
}
const count = (graph) => {
return graph.children ? graph.children.map(count).reduce((item1, item2) => {
return item2.value ? (item1++, item1) : item1 += item2;
}, 1) : graph;
};
Можно ли сделать это одной функцией(один проход по дереву)?