简体   繁体   中英

Javascript using variable as array name

I have several arrays in Javascripts, eg

a_array[0] = "abc";
b_array[0] = "bcd";
c_array[0] = "cde";

I have a function which takes the array name.

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

Currently, I use eval() to do what I want.
Is there any method not to use eval() here?

You can either pass the array itself:

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

Or access it over this :

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

Instead of picking an array by eval 'ing its name, store your arrays in an object:

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

Why can't you just pass the array?

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

Or am I misunderstanding the question...

why don't you pass your array as your function argument?

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

I believe any variables you create are actually properties of the window object (I'm assuming since you used alert that this is running in a web browser). You can do this:

alert(window[array_name][0])

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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