在对象的子键内分配一个键值
assign an key value inside a sub key in object
我有一个对象:
let names = { field1: 'ton', field2: null } // or field3 does not exist
我需要根据名称对象中的变量元素插入到
field='field2'
relative='brotherage'
names[field][relative] = 30; // has no effect in my code, why ?
得到这个:
{ field1: 'ton', field2: {brotherage: 30 } }
并使用此类代码向字段添加更多元素:
field='field2'
relative='cousinage'
names[field][relative] = 20; // has no effect in my code, why ?
得到这个:
{ field1: 'ton', field2: {brotherage: 30, cousingage: 30 } }
什么是最好的方法或为什么我失败了...我尝试了很多东西但我迷路了...
用空对象初始化您的 field2
字段:
let names = { field1: 'ton', field2: {} }
如果 属性 具有虚假值或不存在,您可以使用默认对象。
var names = { field1: 'ton', field2: null },
field = 'field2',
field1 = 'field3',
relative = 'brotherage';
relative1 = 'inlaw';
names[field] = names[field] || {};
names[field][relative] = 30;
names[field1] = names[field1] || {};
names[field1][relative1] = 40;
console.log(names);
// has no effect in my code, why ?
因为 names[ "field2" ]
是 null
而您的代码被错误输出为
Uncaught TypeError: Cannot set property 'brotherage' of null
你需要先让它成为一个对象
names[field] = names[field] || {};
names[field][relative] = 30;
您必须先用空对象初始化 names[field]
:
let names = { field1: 'ton', field2: {} }
field='field2'
relative='brotherage'
names[field][relative] = 30
field='field2'
relative='cousinage'
names[field][relative] = 20
console.log(names)
我有一个对象:
let names = { field1: 'ton', field2: null } // or field3 does not exist
我需要根据名称对象中的变量元素插入到
field='field2'
relative='brotherage'
names[field][relative] = 30; // has no effect in my code, why ?
得到这个:
{ field1: 'ton', field2: {brotherage: 30 } }
并使用此类代码向字段添加更多元素:
field='field2'
relative='cousinage'
names[field][relative] = 20; // has no effect in my code, why ?
得到这个:
{ field1: 'ton', field2: {brotherage: 30, cousingage: 30 } }
什么是最好的方法或为什么我失败了...我尝试了很多东西但我迷路了...
用空对象初始化您的 field2
字段:
let names = { field1: 'ton', field2: {} }
如果 属性 具有虚假值或不存在,您可以使用默认对象。
var names = { field1: 'ton', field2: null },
field = 'field2',
field1 = 'field3',
relative = 'brotherage';
relative1 = 'inlaw';
names[field] = names[field] || {};
names[field][relative] = 30;
names[field1] = names[field1] || {};
names[field1][relative1] = 40;
console.log(names);
// has no effect in my code, why ?
因为 names[ "field2" ]
是 null
而您的代码被错误输出为
Uncaught TypeError: Cannot set property 'brotherage' of null
你需要先让它成为一个对象
names[field] = names[field] || {};
names[field][relative] = 30;
您必须先用空对象初始化 names[field]
:
let names = { field1: 'ton', field2: {} }
field='field2'
relative='brotherage'
names[field][relative] = 30
field='field2'
relative='cousinage'
names[field][relative] = 20
console.log(names)