在 JavaScript 中获取对象的属性

IT技术 javascript json
2021-03-10 20:10:55

基本上,我有一个带有 a 的表单,<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];

什么是正确的语法/方法?

3个回答

由于您通过变量引用属性,因此需要括号表示法。

var gda_set = gdas[mode];

...这与传递字符串时使用的符号相同。

var gda_set = gdas["f"];
你是对的,我有点困惑为什么它第一次不起作用,可能是我的断点在错误的地方。谢谢!
2021-05-04 20:10:55
@Ross - 不客气。:o) 一个相当常见的错误是将 a.放在左括号之前,如gdas.[mode]. 不管怎样,很高兴你让它工作了!
2021-05-14 20:10:55

您在该变量中没有“模式”属性。您必须使用 if's 来检测您正在处理的性别并获得gdas.m.fibreor gdas.f.salt

这真的不是他的问题,是吗?他需要找出如何根据所选值制作.m..f.动态
2021-04-23 20:10:55

您可以使用 gdas[mode],它选择由 mode 值索引的元素。