2012-03-20 111 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

'變種arrayName中的[] =人[]',這需要來_after_ var people []。 – Ohgodwhy 2012-03-20 02:09:01

+0

看到這個http://stackoverflow.com/questions/952457/javascript-using-variable-as-array-name – 2012-03-20 02:13:30

回答

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] 

} 
相關問題