Всем привет. Я учусь рекурсии и мне она очень трудно дается. Добраться до каких-то значений во вложенном дереве или делать какие-то простые вещи вроде факториалов я могу. Но когда нужно создать что-то результирующее из этих значений используя объявленные переменные внутри рекурсии, то я не понимаю как это реализовать. Например:
let users = {
user1: {
name: 'Mike',
},
user2: {
name: 'Tom',
user3: {
name: 'David',
},
},
}
let result = []
function recur(obj) {
for (let key in obj) {
if (typeof obj[key] !== 'object') {
result.push(obj[key])
} else recur(obj[key])
}
return result
}
console.log(recur(users)) // Результирующий, но конечная переменная вне рекурсии
console.log(result) // Результирующий массив
Как это переписать таким образом, чтобы let result = [] не находилось вне рекурсии? То есть чтобы рекурсия сама создавала результирующую переменную и в итоге отдавала ее.