繁体   English   中英

使用变量作为数组名称的Javascript

[英]Javascript using variable as array name

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

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()的方法?

您可以传递数组本身:

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

或通过this访问它:

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

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

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

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

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

还是我误解了这个问题...

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

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

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

alert(window[array_name][0])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM