Nodejs 对象 - 如何同时添加值和定义新属性?

问题描述

假设我有一个对象:

var o = {
  i1: {
    p1: '1/1',p2: '1/2'
  }
};

我可以这样处理它的元素:

console.log('i1 p2:',o['i1']['p2']);

我可以设置新的“垂直”属性

o['i1']['p3']='1/3';
console.table(o);

┌─────────┬───────┬───────┬───────┐
│ (index) │  p1   │  p2   │  p3   │
├─────────┼───────┼───────┼───────┤
│   i1    │ '1/1' │ '1/2' │ '1/3' │
└─────────┴───────┴───────┴───────┘

但是我不能以同样的方式添加一个索引('horizo​​ntal' 属性):

o['i2']['p3']='2/3';

导致错误TypeError: Cannot set property 'p3' of undefined

因为还没有定义 'i2' 属性。 有什么语法可以解决这个问题吗? 非常感谢。

解决方法

i2 属性分配一个 对象,其中对象具有 p3 属性。

o.i2 = { p3: '2/3' }