从动态变量获取数组

Get array from dynamic variable

本文关键字:数组 获取 变量 动态      更新时间:2023-09-26

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

我想从一个变量动态地创建一个等于另一个变量的数组:

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

假设这返回了一个 id 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)

所以在这个例子中,

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

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

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

您可以像访问对象是关联数组一样访问数组:

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

根据您想要实现的目标,您可以选择两种或三种方法之一。

我认为最简单的方法是 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()的论点可以是您想要的任何东西。