用括号符号构建一个新的嵌套对象
2020-11-15
371
我正在尝试基于括号符号构建一个新的嵌套对象。我的语法是
metaObj[subCat][attribute] = value;
我有这些变量; 我的目标是实现这种结构
metaObj = {
chart : {
x: "random",
y: 123
},
data : {
x: "random",
y: 123
}
}
我应该动态构建它,因为属性名称和类别可能会在每种情况下发生变化
但我收到了这个错误
Uncaught TypeError: Cannot set property ---- of undefined
2个回答
错误表明无法设置未定义的属性,因为
subCat
未定义。
解决方案是先将其定义为一个对象,然后执行您的操作。
metaObj = {};
metaObj[subCat] = {}; // define the subCat ( metaObj: {subCat: {}})
metaObj[subCat][attribute] = value;
Khai
2020-11-15
这是因为您正在尝试为尚未创建的对象设置值。 假设 metaObj 已使用 {
if(!metaObj[subCat]) {
metaObj[subCat]= {};
metaObj[subCat][attribute] = value;
} else {
metaObj[subCat][attribute] = value;
}
初始化
Amaarockz
2020-11-15