Sobes.tech
Назад к вопросам
Middle+
19

Задача: обойти дерево объектов (каждый объект имеет поля value и elements) и посчитать сумму всех value. Как бы ты это реализовал?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

Для обхода дерева объектов с полями value и elements (где elements — массив дочерних объектов) и подсчёта суммы всех value можно использовать рекурсивную функцию.

Пример на JavaScript:

function sumValues(node) {
  let sum = node.value;
  if (node.elements && node.elements.length > 0) {
    for (const child of node.elements) {
      sum += sumValues(child);
    }
  }
  return sum;
}

// Пример использования:
const tree = {
  value: 10,
  elements: [
    { value: 5, elements: [] },
    { value: 3, elements: [
      { value: 2, elements: [] }
    ]}
  ]
};

console.log(sumValues(tree)); // 20

Функция sumValues принимает узел, добавляет его значение к сумме, затем рекурсивно вызывает себя для всех дочерних элементов, аккумулируя сумму.