I have several arrays in Javascripts, e.g.
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?
-
Somebody needs to answer the Title of OP.FreeSoftwareServers– FreeSoftwareServers2022年03月03日 20:52:55 +00:00Commented Mar 3, 2022 at 20:52
5 Answers 5
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');
Comments
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]);
}
1 Comment
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...
Comments
why don't you pass your array as your function argument?
function perform(arr){
alert(arr[0]);
}
Comments
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])