2017-07-21 143 views
0

我有一個嵌套的JSON數組,並且想要將子項目分配給其子對象之一。將項目添加到(子)嵌套Json數組的對象

當我爲例子做:

jsonData[0].menu1[0].menu2[0].menuItem5 = "ok"; 

與文本的項目「OK」添加這是希望的行爲。

我想以類似的方式創建更多的這些menuItems(例如menuItem6,7,8,9,..)。 我試過寫一個循環=>

var i = 6; 
while (i < 20) { 
jsonData[0].menu1[0].menu2[0].menuItem[i] = "ok"; 
i++; 
} 

但這不起作用。請問這怎麼解決?

回答

0

,您可以利用模板文字,做類似於此

檢查這個片段

const obj = { 
 
    key1: 'a', 
 
    key2: 'b', 
 
    key3: 'c' 
 
} 
 
let i = 1; 
 
while (i < 4) { 
 
    console.log(obj[`key${i}`]); 
 
    i++; 
 
}

希望它有助於

+0

你好怪異,似乎有趣的;感謝您的建議!我試圖翻譯它爲我的代碼,但我想我做錯了什麼;這是我得到的最好的射手: \t \t \t \t \t \t \t常量的obj = { \t \t \t \t \t \t \t \t KEY1: 'menuItem5', \t \t \t \t \t \t \t \t KEY2: 'menuItem6' , \t \t \t \t \t \t \t \t KEY3: 'menuItem7' \t \t \t \t \t \t \t} \t \t \t \t \t \t \t設I = 1; \t \t \t \t \t \t \t而(I <4){ \t \t \t \t \t \t \t \t的console.log(OBJ ['鍵$ {I}']); \t \t \t \t \t \t \t \t jsonData [0] .menu1 [0] .menu2 [0]。(obj ['key $ {i}'])=「ok」; \t \t \t \t \t \t \t \t我++; \t \t \t \t \t \t \t} 使我有以下錯誤:遺漏的類型錯誤:無法設置屬性 '' 的未定義「KEY1。謝謝!:) – user3339208

+0

你能寄給我你的代碼示例嗎我可以幫你 – Geeky

+0

你完全可以讓我的一天與那個:)你可以在這裏找到它:https://jsfiddle.net/user979979/debzhnc9/ 4 /所以我想要做的是將子對象添加到menuItems對象。我想在循環中做到這一點,以便我可以輕鬆地添加很多新的menuItems到該對象,並且他們每個人都必須有一個唯一的名稱(所以menuItem1,menuItem2,menuItem3,..)如果我可以做的只是:jsonData [0] .menu1 [0] .menu2 [0] .menuItem [i] =「ok」;在一個循環中,它會被解決,但似乎並沒有被允許(這是很明顯的,但不幸的是,我現在沒有看到另一種解決方案)謝謝 – user3339208