我希望能够通过使用字符串来引用数组,如下所示:
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 :(得分: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]
}