Подскажите, пожалуйста, что нам даёт строчка if (result)?
Зачем создавать отдельную переменную result и присваивать ей obj и почему если просто создать let result, то функция не будет работать(или же определить её сразу в блоке условия let result = result[chain[i]])?
И хотел бы ещё попросить подсказки как решить с помощью рекурсии?
Прошу прощения за столь глупые вопросы
function chaining(obj, chain){
let result = obj
if (chain.length === 0) {
return undefined
}
for (let i = 0; i < chain.length; i++) {
if (result) {
result = result[chain[i]]
} else {
result = undefined
}
}
return result
}
const obj = {
a: {
b: {
c: {
d: 'Привет!'
}
}
}
}
optionalChaining(obj, ["a", "b", "c", "d"]) // Привет
optionalChaining(obj, ["a", "b", "c", "d", "e"]) // undefined