Riveran
@Riveran
Astartes

Как суммировать все значения в дереве?

Добрый день, есть вот такой массив с древовидным объектом внутри:
[
  {
    "id": 1,
    "parentid": null,
    "count": "0",
    "children": [
      {
        "id": 2,
        "parentid": 1,
        "count": "89",
        "children": [
          {
            "id": 3,
            "parentid": 2,
            "count": "19",
            "children": [
              {
                "id": 5,
                "parentid": 3,
                "count": "205"
              },
              {
                "id": 4,
                "parentid": 3,
                "count": "8"
              }
            ]
          }
        ]
      }
    ]
  }
]


Мне необходимо суммировать все значения count от детей и добавить их к родителю, может кто-то знает решение?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const addSum = data =>
  (Array.isArray(data) ? data : []).reduce((acc, n) => {
    n.childrenCountSum = addSum(n.children);
    return acc + +n.count + n.childrenCountSum;
  }, 0);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы