[英]How do I use Square Bracket Notation to use multiple variables to call nested objects?
我正在嘗試創建一個函數,該函數將使用多個變量來選擇正確的嵌套對象,然后對其進行操作。
var group1 = {
fred: {
debt: 5,
income: 2
},
suzy: {
debt: 3,
income: 5
}
},
group2 = {
molly: {
debt: 4,
income: 4
},
jason: {
debt: 6,
income: 1
}
};
function debtCheck(group, name) {
console.log(group.name.debt); ==>Uncaught TypeError: Cannot read property 'debt' of undefined
console.log(group[name].debt); ==>Uncaught TypeError: Cannot read property 'debt' of undefined
console.log([group][name].debt); ==>Uncaught TypeError: Cannot read property 'debt' of undefined
console.log([group[name]].debt); ==>undefined
}
debtCheck('group1', 'fred');
目標是使它在控制台中顯示5。 如果我只做一個變量,它就可以正常工作。
function debtCheck(name) {
console.log(group1[name].debt);
}
debtCheck('fred');
希望我能清楚說明我的要求。 謝謝您的幫助!
我對此有其他想法:基礎對象不能是變量嗎? 還是不能連續有兩個變量?
您將第一個參數作為字符串而不是對象傳遞。 嘗試debtCheck(group1, 'fred');
。 同樣,由於第二個參數應該是一個字符串,因此您需要通過group[name].debt
訪問它。
關於第一點的一些背景材料可以幫助您: 將值/引用傳遞給函數 ; 關於第二點: 使用對象 。
var group1 = { fred: { debt: 5, income: 2 }, suzy: { debt: 3, income: 5 } }; var group2 = { molly: { debt: 4, income: 4 }, jason: { debt: 6, income: 1 } }; function debtCheck(group, name) { console.log(group[name].debt); } // debtCheck('group1', 'fred'); debtCheck(group1, 'fred');
兩件事情。 您將group1
作為字符串而不是對象放入。 其次,在通過特定變量名稱引用對象時,不能使用點符號。 您需要使用方括號。
嘗試:
function debtCheck(group, name) {
console.log(group[name].debt);
}
debtCheck(group1, 'fred');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.