我在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()?
答案 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])