Доступ к переменной Javascript, хранящейся в массиве - PullRequest
0 голосов
/ 23 июня 2011

В настоящее время у меня есть массив следующим образом:

var allMenus = ['vehicleMakeFb','vehicleModelFb','vehicleTrimFb']

Где vehicleMakeFb и т. Д. На самом деле являются объектами. Первоначально я пытался сохранить объекты в массиве, но я понимаю, что это невозможно в JS, поэтому я прибег к хранению имен переменных в виде строк.

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

for (fbMenu in allMenus) {
    alert(vehicleMakeFb.divId);
}

Где divId - строка.

Какой правильный синтаксис для доступа к этой переменной по ее имени?

Ответы [ 3 ]

3 голосов
/ 23 июня 2011

Что значит, что вы не можете хранить массив объектов?

var allMenus = [
  {make: 'Ford', model: 'Mustang', trim: 'Coupe'},
  {make: 'Ford', model: 'Explorer', trim: 'Eddie Bauer'}
];

// all items
for (var i = 0; i < allMenus.length; i++){
  var fbMenu = allMenus[i];

  // explicit list of properties
  console.log('[X] Make: ' + fbMenu.make);
  console.log('[X] Model: ' + fbMenu.model);
  console.log('[X] Trim: ' + fbMenu.trim);

  // discovered list of properties
  for (var prop in fbMenu){
    console.log('[D] ' + prop + ': ' + fbMenu[prop]);
  }
}
1 голос
/ 23 июня 2011

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

// assuming the following object
var company = { employee : { name : 'foo' }  };

// we can access the name property via
var name1 = company.employee.name;
var name2 = company.employee['name'];
var name3 = company['employee']['name'];
// ...

Затем вы можете хранить объекты в массивах практически таким же образом:

var obj1, obj2, obj3; // some objects (initialized prior)
var myArray = [obj1, obj2, obj3];

Глядя на свой код, просто убедитесь, что вы отбрасываете кавычки в своем массиве JSON. (т.е. [obj], а не ['obj']).

1 голос
/ 23 июня 2011

Вы можете получить доступ к свойствам объекта двумя способами:

Точечная запись

object.prop

Скобки

object['prop']

Вы можете хранить объекты в массиве.

var arrayFullOfObjects = [{
   foo: 'bar'
},
  window,
  jQuery
];

arrayFullOfObjects[0].foo; //bar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...