user5589998
user5589998

Reputation:

Get array from dynamic variable

I'm sure this is really simple, I just can't work out how to do it.

I want to dynamically make an array from one variable equal to another:

 var pageID = document.getElementsByClassName('page_example')[0].id;

Let's say this returned an id of page_1

 var page_1 = ['value1','value2','value3'];
 var page_2 = ['value4','value5','value6'];
 var page_3 = ['value7','value8','value9'];

var page_array = (then have the associated pageID's array here)

So in this example,

page_array would equal ['value1','value2','value3']

Upvotes: 1

Views: 174

Answers (2)

Soana
Soana

Reputation: 711

Instead of storing the array in separate variables, store them in an object with the ids as the key:

var pages = {
    page_1: ['value1','value2','value3'],
    page_2: ['value4','value5','value6'],
    page_3: ['value7','value8','value9']
}

You can access the arrays as though the object was an assosiative array:

var pageID = "page_1";
var pageArray = pages[pageID];

Upvotes: 0

jacobherrington
jacobherrington

Reputation: 463

Depending on what you would like to achieve, you can one of two or three methods.

What I consider the easiest method is an if/else statement:

if (condition) {
 page_array = page_1.slice(0);
} else if (other condition) {
 page_array = page_2.slice(0);
} else if...

Another method you can use, again depending on what your ultimate goal is, would be a for loop:

for (var i = 0; i < numOfDesiredLoops; i++) {
  page_array = page_1.slice(0, i);
}

Or you could use a combination of both:

for (var i = 0; i < numOfDesiredLoops; i++) {
  if (condition) {
    page_array = page_1.slice(0); 
  } else if (other condition) {
    page_array = page_2.slice(1);
  } else if...
}

With more information on why you need this variable to change, I can give you a better answer.

edit: keep in mind the arguments of .slice() can be whatever you want.

Upvotes: 0

Related Questions