如何使用jQuery中的另一个变量按名称引用变量?

时间:2012-03-20 02:06:49

标签: javascript 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.
}

有关如何做到这一点的任何想法?对不起,如果我遗漏了一些明显的东西。

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果您的数组是在函数之外声明的,则可以使用this关键字来访问它:

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

答案 2 :(得分: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]

}