基本上我有一个<select>
的表单,它选择使用哪组数据(值为“m”,“f”和“c”)。然后我有一个包含数据的字典/对象:
var gdas = {
// Male
"m": {
"calories": 2500,
"protein": 55,
"carbohydrates": 300,
"sugars": 120,
"fat": 95,
"saturates": 30,
"fibre": 24,
"salt": 6
},
// Female
"f": {
"calories": 2000,
// etc.
};
现在我需要gdas.m
/ gdas.f
/ gdas.c
,但我不确定使用什么语法 - 我试过了:
var mode = $("#mode").val();
var gda_set = gdas.mode;
var gda_set = gdas[mode];
这是什么样的语法/方法?
答案 0 :(得分:19)
由于您通过变量引用属性,因此需要括号表示法。
var gda_set = gdas[mode];
...如果传递字符串,则使用相同的表示法。
var gda_set = gdas["f"];
答案 1 :(得分:2)
该变量中没有“mode”属性。您必须使用if来检测您正在处理的性别并获得gdas.m.fibre
或gdas.f.salt
。
答案 2 :(得分:0)
您可以使用gdas [mode],它选择由mode值索引的元素。