从动态变量中获取数组

时间:2016-03-07 14:00:12

标签: javascript

我确定这很简单,我只是不知道该怎么做。

我想从一个变量等于另一个变量动态生成一个数组:

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

让我们说这返回了第1页的id

 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)

所以在这个例子中,

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

2 个答案:

答案 0 :(得分:1)

不是将数组存储在单独的变量中,而是将它们存储在以id为键的对象中:

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

您可以访问数组,就好像该对象是一个assosiative数组:

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

答案 1 :(得分:0)

根据您希望实现的目标,您可以使用两种或三种方法中的一种。

我认为最简单的方法是if / else语句:

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

您可以使用的另一种方法,取决于您的最终目标,将是for循环:

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

或者您可以结合使用两者:

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...
}

有关您需要更改此变量的原因的更多信息,我可以为您提供更好的答案。

编辑:请记住.slice()的参数可以是您想要的任何内容。