Вы можете также рассмотреть возможность использования библиотеки, подобной lodash , которая предоставляет функции для "достижения внутри" сложного объекта и возврата значения, если путь не существует, значения по умолчанию.
Пример:
const _ = require('lodash')
const target = {
foo: {
bar: {
baz: [1, 2, 3]
}
}
}
console.log(_.get(target, 'foo.bar.baz.1')) // ==> 2
console.log(_.get(target, 'foo.3.bar', 'DEFAULT')) // ==> DEFAULT
if (_.has(target, 'foo.bar')) {
// do something interesting
}
const newKey = 'blorg'
_.put(target, `foo.bar.${newKey}`, 'hello?')
/*
target is now {
foo: {
bar: {
baz: [1, 2, 3]
},
blorg: 'hello?'
}
}
*/