【问题标题】:Assigning a value to an object parameter without creating parent first在不先创建父对象的情况下为对象参数赋值
【发布时间】:2020-03-03 02:46:48
【问题描述】:

如何在其父对象尚不存在的嵌套对象中为特定参数赋值?

var obj = {
  'obj1' : {
    'obj1a' : 'obj1a'
  },
  'obj2' : 'obj2'
}

obj.obj3.obj3a = 'obj3a'  // this is what I want to work 

但它给出了一个错误:

TypeError: obj.obj3 is undefined 

javascript不能递归创建children参数的parents吗?

如果这根本不可行,是否有任何内置机制来处理此类情况,以免产生此类错误?类似于?. 功能的工作方式。 例如:console.log(obj?.obj1?.obj1a)

【问题讨论】:

  • 你不能。您必须先创建对象。
  • JavaScript 不会自动创建中间对象。
  • 你可以只做obj.obj3 = {obj3a: 'obj3a'};如果你担心覆盖obj3以防它已经存在,你可以做obj.obj3 = {...obj.obj3, obj3a: 'obj3a'}

标签: javascript node.js object


【解决方案1】:

就像@Barmar 在他的第一条评论中所说。你可以这样做,想:

const obj = {
  obj1:{
    obj1a:'obj1a'
  },
  obj2:'obj2'
}
obj.obj3 = {obj3a:'obj3a'};
console.log(obj);
console.log('--------------------------------------');
console.log(obj.obj3);

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 2023-03-10
    • 2012-08-31
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2020-11-13
    相关资源
    最近更新 更多