I am working on a little project here. I have two arrays (States, Cities) I am trying to allow the user to chose one from a select form (Choice) and then have the values of the chosen array displayed in a alert(). Obviously I could just write an if statement and display the required content depending on whether the value selected == States or Cities. But this project is just a placeholder project for me to figure out one aspect of a much larger project I am working on. And it is important for the result to be chosen dynamically as in the final project I won't know the values that the select field is being filled with.

What I need to do is take the value returned from the select field (Choice) and turn that into the name of the array and display that. If I use this code


then it returns the values of that array. But like I said I need to be able to dynamically select what array to display based on users input.


returns the value chosen. How can I take the value chosen and actually display the value of the array with that same name. In other words let JS know that I don't literally want it to display the value chosen but rather the value chosen is the name of the array I want it to display?

Pseudo code
x = document.getElementById("Choice").value;
x is name of array;


There is a way of doing this, but its not exactly like your Pseudo code. But it can be done dynamically.

Make the array's you want to display and array of arrays.

var data= [

The first elements c1,c2,c3 etc should be the names of the variables which should be selected by the user.

When the user selects an input, loop through the array's and select the one that has the first element as the same name as that selected by the user. Put that array into another variable and display it.

Hope this is close to what you are looking for.

In my final project the user was going to be entering information for creating the arrays, so I have no idea of how many arrays, what their name is or what their content is. I could get their dynamic input into the select box but couldn't get it to display right. Posted on another forum this morning and got a answer within a hour.

var x = document.getElementById("Choice").value

var chosenArray=window[x];

did the trick.