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

Posted

技术标签:

【中文标题】Nodejs 对象 - 如何同时添加值和定义新属性?【英文标题】:Nodejs objects - how to add value and define new property at the same time? 【发布时间】:2021-08-14 05:42:41 【问题描述】:

假设我有一个对象:

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”属性。 有什么语法可以解决这个问题吗? 非常感谢。

【问题讨论】:

【参考方案1】:

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

o.i2 =  p3: '2/3' 

【讨论】:

以上是关于Nodejs 对象 - 如何同时添加值和定义新属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过敲除映射(ko.utils)向数组中的每个对象添加新属性(索引)?

python面向对象

使用 NodeJS 向 JSON 文件键添加新属性

如何从数组中的对象添加新的键和值?

如何使用 SQL 过程同时添加新属性和更新值?

JavaScript高级对象相关:对象属性属性描述符(数据属性,存取属性)