Javascript使用变量作为数组名称

时间:2009-06-04 19:01:43

标签: javascript

我在Javascripts中有几个数组,例如

a_array [0] =“abc”;
b_array [0] =“bcd”;
c_array [0] =“cde”;

我有一个采用数组名称的函数。

function perform(array_name){
    array_name = eval(array_name);
    alert(array_name[0]);
}
perform("a_array");
perform("b_array");
perform("c_array");

目前,我使用eval()来做我想做的事 有没有方法不在这里使用eval()?

5 个答案:

答案 0 :(得分:7)

您可以自行传递数组:

function perform(array) {
    alert(array[0]);
}
perform(a_array);

或通过this

访问它
function perform(array_name) {
    alert(this[array_name][0]);
}
perform('a_array');

答案 1 :(得分:4)

不是通过eval名称选择数组,而是将数组存储在对象中:

all_arrays = {a:['abc'], b:['bcd'], c:['cde']};
function perform(array_name) {
    alert(all_arrays[array_name][0]);
}

答案 2 :(得分:2)

为什么你不能只传递数组?

function perform(array){
    alert(array[0]);
}
perform(a_array);
perform(b_array);
perform(c_array);

或者我误解了这个问题......

答案 3 :(得分:1)

为什么不将数组作为函数参数传递?

function perform(arr){
    alert(arr[0]);
}

答案 4 :(得分:0)

我相信你创建的任何变量实际上都是窗口对象的属性(我假设你使用了这是在Web浏览器中运行的警报)。你可以这样做:

alert(window[array_name][0])