【问题标题】:Get property of object in JavaScript在 JavaScript 中获取对象的属性
【发布时间】:2010-09-12 14:50:26
【问题描述】:

基本上我有一个带有<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];

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

【问题讨论】:

标签: javascript json


【解决方案1】:

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

var gda_set = gdas[mode];

...与传递字符串时使用的表示法相同。

var gda_set = gdas["f"];

【讨论】:

  • 你说得对,我有点困惑为什么它第一次不起作用,可能是我的断点在错误的地方。谢谢!
  • @Ross - 不客气。 :o) 一个相当常见的错误是在左括号前放置.,如gdas.[mode]。无论如何,很高兴你能成功!
【解决方案2】:

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

【讨论】:

  • 这不是他的问题,是吗?他需要了解如何根据所选值使.m..f. 动态化
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多