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

'のvar arrayName [] =人[];'、これは来る必要があります_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] 

} 
関連する問題