javascript - 在不先创建父对象的情况下为对象参数赋值
问题描述
如何在其父对象尚不存在的嵌套对象中为特定参数赋值?
var obj = {
'obj1' : {
'obj1a' : 'obj1a'
},
'obj2' : 'obj2'
}
obj.obj3.obj3a = 'obj3a' // this is what I want to work
但它给出了一个错误:
TypeError: obj.obj3 is undefined
javascript不可能递归地创建子参数的父母吗?
如果这根本不可行,是否有任何内置机制来处理此类情况,以免产生此类错误?类似于?.
功能的工作方式。例如:console.log(obj?.obj1?.obj1a)
解决方案
就像@Barmar
他在第一条评论中所说的那样。你可以这样做,想:
const obj = {
obj1:{
obj1a:'obj1a'
},
obj2:'obj2'
}
obj.obj3 = {obj3a:'obj3a'};
console.log(obj);
console.log('--------------------------------------');
console.log(obj.obj3);
推荐阅读
- python - 具有最小周期和最大值的 Numpy 滚动窗口(类似于 Pandas 滚动但 Numpy)
- android - 突出显示在 Android 设置应用程序的搜索结果中找到的菜单项
- c++ - 为什么 delete[] 在这里抛出异常?
- rust - 在 Rust 中,在实例化它时需要结构的成员/字段名称。为什么我们不能只传递值?
- python - 在 tkinter 中启动另一个应用程序后如何聚焦窗口?
- button - 用户消息中没有来自 Slack Interactive 按钮的请求
- reactjs - 使用 useEffect 和依赖数组的调度操作
- cpu - “intel xeon silver 4216”这个CPU的指令集是否支持SHA256?
- azure - 由于Newtonsoft JsonReaderException,随机出现NServiceBus MessageDeserializationException
- audit-logging - 在创建审计条目时减少 Audit.Net 时间