Использовать переменную в качестве атрибута для объекта, как? - PullRequest
2 голосов
/ 09 марта 2012

для следующего дерева

var items = {
  'drinks': [
    {
      'name': 'coke',
      'sugar': '1000'
    },
    {
      'name': 'pepsi',
      'sugar': '900'
    }
  ]
};

Есть ли способ сделать что-то вроде

function get_values(data) {
  var items = JSON.parse(items)
  return items.data[0].name;
}
get_values('drinks');

Ответы [ 3 ]

3 голосов
/ 09 марта 2012

Если вы хотите использовать содержимое переменной в качестве средства доступа к свойству, вы должны использовать синтаксис массива:

myObject[myKey]

В вашем случае вам нужно что-то вроде:

var items = JSON.parse(items)

function get_values(data) {
    return items[data][0].name;
}

get_values('drinks');  // returns "coke"

Обратите внимание, что это, в частности, только возврат имени первого элемента в массиве items.drinks.

2 голосов
/ 09 марта 2012

Просто получите доступ к значению свойства на основе его имени.

Используя скобочную запись:

items['drinks'];

Или, используя точечную запись, , что возможно в этом случае :

items.drinks;
0 голосов
/ 09 марта 2012

Вы также можете обращаться к объекту как к ассоциативному массиву.

console.log(items['drinks']);

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