Получить свойство объекта в JavaScript - PullRequest
11 голосов
/ 12 сентября 2010

В основном у меня есть форма с <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 ]

19 голосов
/ 12 сентября 2010

Поскольку вы ссылаетесь на свойство через переменную, вам нужна скобочная нотация.

var gda_set = gdas[mode];

... это та же нотация, которую вы использовали бы при передаче строки.

var gda_set = gdas["f"];
2 голосов
/ 12 сентября 2010

У вас нет атрибута "mode" в этой переменной.Вы должны использовать if, чтобы определить, какой пол вы обрабатываете, и получить gdas.m.fibre или gdas.f.salt.

0 голосов
/ 12 сентября 2010

Вы можете использовать gdas [mode], он выбирает элемент, индексированный по значению mode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...