2013-11-15 4 views
0

У меня есть массив, который содержит несколько значений. У меня есть несколько других областей, каждая с разным числом вместоДинамические имена массивов в jQuery

var u3s0A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"]; 

Однако, я не мог понять, как ссылаться на массивы динамически. Я пробовал:

alert(u3s + randomNumber + A[p]); 

но только получил ошибки. Я понимаю, что если я сделать

alert('u3s' + randomNumber + 'A'[p]); 

выводит правильное имя массива, но затем преобразуется в строку и, когда я индексироваться:

var arrayHolder = 'u3s' + randomNumber + 'A'; 
alert(arrayHolder[0]); 

я получаю первый номер в имени массива (u), а не первый элемент в массиве.

Любая помощь будет оценена!

Большое спасибо за ваше время.

ответ

4

Попробуйте этот путь, создавая временный объект и установить массивы в качестве свойств объекта, а затем получить доступ к нему с помощью кронштейна нотации с сконструированным именем свойства:

var ob = {}; 
ob.u3s0A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"]; 
ob.u3s1A = ["Ques De Ti", "Encina", "Renaissance", "Syllabic", "Polyphonic", "None"]; 
..... 

, а затем

alert(ob['u3s' + randomNumber + 'A'][p]); 

Если это в глобальном масштабе, и если вы находитесь в браузере, вы можете получить к нему доступ с помощью оконного объекта так же, как и выше, вместо временного объекта ob.

Demo

0

Попробуйте что-то вроде этого:

window['u3s' + randomNumber + A[p]] 
Смежные вопросы