2016-07-01 2 views
0

У меня есть объект, содержащий массивы, которые я хочу вернуть только для избранной части. underscore.js установлен и ожидает, что он предоставит нужные мне инструменты.Свойство массива доступа на объекте

Адрес: makes.

{ 2011: [ "Chevy", "Ford" ], 2012: [ "Chevy", "Ford", "GMC", "Hyundai" ] } 

Я пробовал это, и он возвращает пустой массив.

chyear = 2012; 
var makesbyyear = _.toArray(makes.chyear); 
+2

Чтобы получить справочную 'уаг makesbyyear = делает [chyear];' или для нового массива 'вар = makesbyyear делает [chyear] .slice();' –

+0

chyear не является параметром марок. Вам нужно будет использовать make [chyear] и, вероятно, вместо этого установить chyear; chyear = '2012'; – ManoDestra

+0

Посмотрите на значок [pick] подчёркивания (http://underscorejs.org/#pick), который может быть полезен, если вы хотите получить более одного года одновременно, например. '_.pick (data, '2012')' или '_.pick (data, '2012,' 2013 ')' –

ответ

0

просто извлеките требуемое свойство, как если бы оно было индексом.

chyear = 2012; 
var makesbyyear = makes[chyear]; 

в JavaScript, объекты имеют свойства. Свойство является видом переменной внутри объекта. Таким образом, свойства похожи на простые переменные, но прикреплены, поэтому вам нужно получить к ним доступ через свой «контейнерный» объект.

Обычно доступ к свойствам объекта с помощью точечной нотации

object.property 

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

object["property"] 
+0

chyear, вероятно, тоже должен быть текст, а не число. Преобразование может быть явным, но стоит отметить, так как это имя параметра здесь :) – ManoDestra

+0

На самом деле объекты ** не ** называются ассоциативными массивами.Это термин, используемый на других языках, а не JavaScript. –

+0

Объекты @todazaburo, используемые (или злоупотребляемые) через индексы, * иногда * вызывают в ассоциативных массивах javascript тоже. –

Смежные вопросы