引用数组 JavaScript

referencing an array javascript

本文关键字:JavaScript 数组 引用      更新时间:2023-09-26

使用以下代码:

Array0 = ['a', 'b', 'c'];
Array1 = ['c', 'd', 'e'];
Array2 = ['x', 'a', 'd'];
...
/*
doStuff() is a recursive function whose argument is an abitrary length array
containing an arbitrary list of array names
e.g., anArr = ['Array1', 'Array0', 'Array1', 'Array2', ...]
*/
function doStuff(anArr) {
    for(i=0; i<anArr.length; i++)   {
      switch(anArr[i])  {
      case('Array0')    :   Array0.myMethod(); break;
      case('Array1')    :   Array1.myMethod(); break;
      case('Array2')    :   Array2.myMethod(); break;
      }
    }
}

有没有办法用单个语句替换 switch() 块:

<<array referenced by 'someArray'>>.aMethod()   //or
function aFunction (<<array referenced by 'someArray'>>){}

请纯Javascript-没有jquery或其他库。谢谢

首先使用对象。

var foo = {
  Array0 : ['a', 'b', 'c'];
  Array1 : ['c', 'd', 'e'];
  Array2 : ['x', 'a', 'd'];
}

然后,您可以:

foo[anArr[i]].myMethod();

您可以将实际数组存储在数组中...

Array0 = ['a', 'b', 'c'];
Array1 = ['c', 'd', 'e'];
Array2 = ['x', 'a', 'd'];
var anArr = [Array0, Array1, Array2];
for(i=0; i<anArr.length; i++) {
    anArr[i].myMethod();
}