[英]Javascript - Objects: How To Access Nested Objects?
我檢查了 SO 和 Google 的每一個問題,但無濟於事,這就是我創建副本的原因,因為很明顯,我的情況不同,因為沒有一個答案有效。
首先,我不明白為什么我不能簡單地通過使用.
符號如下: myObject.level1.level2.level3whichIsAObject
,它返回undefined
。 我的結構是:
myMainOjbect = {
attachment: {
handle: 'attachment',
slug: 'Images',
state: {
success: true,
data: {
activated: false,
info: {
demo: 'demo-1',
component: 'attachment',
},
success: true,
}
}
}
},
..
首先,我遍歷高級:
for(let key in myMainOjbect) {
const objectData = objectData[key];
}
這向我展示了attachment
中的所有內容。 但是如果我想得到objectData.state
,突然間,它被返回為undefiend
。
這里發生了什么? 為什么我不能簡單地訪問東西,其次,我該怎么做呢?
最奇怪的部分是,如果我將原始 object 作為全局存儲在控制台中,並且我在代碼中執行相同的操作:
這是我(沒有)得到的錯誤:
const myObject = { attachment: { handle: 'attachment', slug: 'Images', state: { success: true, data: { activated: false, info: { demo: 'demo-1', component: 'attachment', }, success: true, } } }, widgets: { handle: 'widgets', slug: 'Widgets', state: { success: true, data: { activated: false, info: { demo: 'demo-1', component: 'widgets', }, success: true, } } }, }; for (const key in myObject) { console.log(myObject[key].state); }
在這個演示中,它可以工作,除了我的代碼,它是 1:1 副本......它沒有。
您正在訪問不是來自循環的變量。
你需要這樣做。
const myMainOjbect = { attachment: { handle: 'attachment', slug: 'Images', state: { success: true, data: { activated: false, info: { demo: 'demo-1', component: 'attachment', }, success: true, } } } }; for (const key in myMainOjbect) { console.log(myMainOjbect[key].state) }
試試這個代碼:
for (let key in myMainOjbect) {
const objectData = myMainOjbect[key];
console.log(objectData.state)
}
const objectData = objectData[key];
與console.log(myMainOjbect[key].state)
不一樣
我不明白為什么我不能簡單地訪問 object 中的 object
你可以。 有關示例,請參見下面的代碼段:
const myMainOjbect = { attachment: { handle: 'attachment', slug: 'Images', state: { success: true, data: { activated: false, info: { demo: 'demo-1', component: 'attachment', }, success: true, } } } }; const objectData = {}; for (const key in myMainOjbect) { objectData[key] = myMainOjbect[key]; } console.log(objectData); console.log(objectData.attachment.state); const myState = myMainOjbect.attachment.state; console.log(myState);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.