Как обращаться к объекту в массиве?

Добрый вечер. Есть массив с ключами и объектами, пытаюсь вывести price у нужного xdata, но не получается, что я делаю не так? И какие вообще есть способы обращения к таким объектам?
var	matrix = [{
      land: 'uprav',
      info: [
      	{xdata: '11 марта 2016', price: '11000'},
        {xdata: '17 марта 2016', price: '17000'},
        {xdata: '22 марта 2016', price: '22000'},
        {xdata: '29 марта 2016', price: '29000'}
  	]}, {
    	land: 'progger',
      info: [
      	{xdata: '11 марта 2016', price: '11000'},
        {xdata: '17 марта 2016', price: '17000'},
        {xdata: '22 марта 2016', price: '22000'},
        {xdata: '29 марта 2016', price: '29000'}
		]}
	];

alert(matrix['progger'].info['11 марта 2016'].price);
  • Вопрос задан
  • 988 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Если просто обратиться, то вот, например, предпоследняя цена:
matrix[1].info[2].price

А если вам не просто обратиться нужно, но сперва найти нужный объект, то следует использовать что-то типа filter, find, или какие-то другие из итерирующих методов.

Демо с find: https://jsfiddle.net/ns3ou0hw/
var price = matrix
    .find(e=>e.land == land)
    .info
    .find(e=>e.xdata == date)
    .price
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Wernalur
@Wernalur
alert(matrix[1].info[0].price);

К комментарию:
var	matrix =
{
  progger:
  {
    info:
    {
      "11 марта 2016": 
      {
        price: '11000',
        count: '110'
      }
    }
  }
}

alert(matrix["progger"].info["11 марта 2016"].price)


Так, например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы