问题描述
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' │
└─────────┴───────┴───────┴───────┘
但是我不能以同样的方式添加另一个索引('horizontal' 属性):
o['i2']['p3']='2/3';
导致错误:TypeError: Cannot set property 'p3' of undefined
因为还没有定义 'i2' 属性。 有什么语法可以解决这个问题吗? 非常感谢。
解决方法
为 i2
属性分配一个 对象,其中对象具有 p3
属性。
o.i2 = { p3: '2/3' }