簡體   English   中英

使用括號表示法構建一個新的嵌套 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM