2012-03-20 3 views
1

Я хотел бы, чтобы иметь возможность ссылаться на массив, используя строку, как таковой:Как я могу ссылаться на переменную по имени, используя другую переменную в jQuery?

var arrayName = "people"; 

var people = [ 
    'image47.jpeg', 
    'image48.jpeg', 
    'image49.jpeg', 
    'image50.jpeg', 
    'image52.jpeg', 
    'image53.jpeg', 
    'image54.jpeg', 
    'image55.jpeg', 
] 

function myFunc (arrayName) 
{ 
    //arrayName is actually just a string that evaluates to "people", which then in turn would reference the var people, which is passed in. 
} 

Любые мысли о том, как это сделать? Извините, если мне не хватает чего-то очевидного.

+0

'вар имяМассива [] = люди [];' и это должно прийти _after_ var people []. – Ohgodwhy

+0

Посмотрите это http://stackoverflow.com/questions/952457/javascript-using-variable-as-array-name –

ответ

2

Вы можете просто создать глобальный словарь, как это:

var people = ['image47.jpeg', 'image48.jpeg']; 
var cars = ['image3.png', 'image42.gif']; 
var global_arrays = { 
    people: people, 
    cars: cars 
}; 

function myFunc(arrayName) { 
    var ar = global_arrays[arrayName]; 
    // Do something with ar 
} 

Обратите внимание, что первая строка MyFunc становится ясно, что это просто сложный способ иметь myFunc принимать сам массив в первую очередь , Я настоятельно рекомендую вам сделать это, как это:

function myFunc(ar) { 
    // Do something with ar 
} 
myFunc(people); 

Это означает, что ваш код будет многоразовым кем-либо другим (скажем, третья сторона плагин, который хочет оказать жирафов) и не требует каких-либо глобальных переменных ,

1

Если массив объявлен вне функции, вы можете получить доступ к нему, используя this ключевое слово так:

function myFunc(arrayname) { 
    var itemzero = this[arrayname][0]; 
} 
0
var arrayName = "people"; 

var people = [ 
    'image47.jpeg', 
    'image48.jpeg', 
    'image49.jpeg', 
    'image50.jpeg', 
    'image52.jpeg', 
    'image53.jpeg', 
    'image54.jpeg', 
    'image55.jpeg', 
] 

function myFunc (arrayName) 
{ 

//Here you can use this or window obj To quote you array. 
//such as window[arrayName] 

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