首页 > 解决方案 > 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' │
└─────────┴───────┴───────┴───────┘

但是我不能以同样的方式添加另一个索引(“水平”属性):

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

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

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

标签: node.jsarraysjavascript-objects

解决方案


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

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

推荐阅读