![](/img/trans.png)
[英]Using bracket notation with a variable to access object property returns undefined
[英]unable to access object property through bracket variable notation
我試圖通過方括號表示法訪問對象屬性之一,但是我無法弄清為什么它不起作用。 一如既往,非常感謝您的幫助!
js:
var dude = [
{
question1: "What is dude's favourite food?",
choices1: ["Pizza", "Pasta", "Chips", "Ice cream"],
answer1: 1
},
{
question2: "What was dude's first ever job?",
choices2: ["Staples", "Vodafone", "Costa", "Post office"],
answer2: 0
},
]
var counter = 1;
var currentQues = "question"+counter;
console.log(dude[currentQues]);
控制台返回“未定義”。 這是因為它無法通過本質上包含另一個變量(計數器)的變量(currentQues)訪問屬性嗎?
與往常一樣,我們非常感謝您的幫助。 我只是想進步的初學者。
dude
是指對象數組 。 您正在嘗試在dude
上訪問question1
,但是您需要在dude[0]
上訪問它:
console.log(dude[0][currentQues]);
// -------------^^^
現場示例:
var dude = [ { question1: "What is dude's favourite food?", choices1: ["Pizza", "Pasta", "Chips", "Ice cream"], answer1: 1 }, { question2: "What was dude's first ever job?", choices2: ["Staples", "Vodafone", "Costa", "Post office"], answer2: 0 }, ] var counter = 1; var currentQues = "question"+counter; console.log(dude[0][currentQues]);
我強烈建議您重新考慮該數據結構。 所有對象的對象屬性名稱都應該相同,只是它們在數組中的位置可以區分它們:
var dude = [{ question: "What is dude's favourite food?", choices: ["Pizza", "Pasta", "Chips", "Ice cream"], answer: 1 }, { question: "What was dude's first ever job?", choices: ["Staples", "Vodafone", "Costa", "Post office"], answer: 0 }, ] dude.forEach(function(entry, index) { var num = index + 1; console.log("Question #" + num + ": " + entry.question); });
您還需要獲取數組的索引。
var dude = [{ question1: "What is dude's favourite food?", choices1: ["Pizza", "Pasta", "Chips", "Ice cream"], answer1: 1 }, { question2: "What was dude's first ever job?", choices2: ["Staples", "Vodafone", "Costa", "Post office"], answer2: 0 }], counter = 1; currentQues = "question" + counter; console.log(dude[counter - 1][currentQues]); // ^^^^^^^^^^^
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.