我有一个参与的基本功能。我将使用此参数作为索引来访问JSON文件中的数组。我想利用这个参数而不是在函数内部进行硬编码。但是,由于某些原因,javascript并没有给我正确的价值。
var obj = {
"first":[
["aaaaa"],
["bbbbb"],
["ccccc"],
["ddddd"],
["eeeee"]
]
}
我有一个javascript函数来访问该文件。
function addElement(ID) {
console.log(obj.ID);
}
现在如果我使用
addElement("first"); //this return me undefined.
我不想明确提及obj.first
以访问正确的JSON对象。我想使它更通用,以便可以重复使用该方法。我在这里错过了什么吗?
...谢谢
答案 0 :(得分:3)
JavaScript支持点表示法和属性名称 literal (obj.foo
),括号表示法和属性名称 string (obj["foo"]
) 。*在后一种情况下,字符串可以是任何表达式的结果。
所以你需要括号表示法,而不是点符号:
function addElement(ID) {
console.log(obj[ID]);
}
obj.ID
访问属性ID
。 obj[ID]
访问名称为变量ID
的字符串的属性。
*仅为了完整性:在ES6中,它也会以括号表示法支持属性名称Symbol
,但这与您的代码无关。