[英]build a new nested object with bracket notation
我正在嘗試基於方括號表示法構建一個新的嵌套 object。 我的語法是
metaObj[subCat][attribute] = value;
我有這些變量; 我的目標是實現這種結構
metaObj = {
chart : {
x: "random",
y: 123
},
data : {
x: "random",
y: 123
}
}
我應該動態構建它,因為屬性名稱和類別可能會在每種情況下發生變化
我收到這個錯誤
Uncaught TypeError: Cannot set property ---- of undefined
該錯誤表明它無法設置未定義的屬性,因為subCat
未定義。
一種解決方案是首先將其定義為 object,然后執行您的操作。
metaObj = {};
metaObj[subCat] = {}; // define the subCat ( metaObj: {subCat: {}})
metaObj[subCat][attribute] = value;
那是因為您正在嘗試為尚未創建的 object 設置值。 假設 metaObj 已經用 {} 初始化
if(!metaObj[subCat]) {
metaObj[subCat]= {};
metaObj[subCat][attribute] = value;
} else {
metaObj[subCat][attribute] = value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.