Middle+
Задача: обход на дърво от обекти (всеки обект има полета value и elements) и изчисляване на сумата на всички стойности. Как би го реализирал?
sobes.tech AI
Отговор от 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 приема възел, добавя неговата стойност към сумата, след което се извиква рекурсивно за всички дъщерни елементи, акумулирайки сумата.