将数组动态加载到jQuery函数中

时间:2013-03-01 16:42:22

标签: javascript jquery

好的,

我需要一些jQuery困境的帮助:

我的网站标题中全局声明了3个数组:

var array1 = [];
var array2 = [];
var array3 = [];

我有这样的功能:

function setDropDownList(raw_id){
    jQuery.each(mytest, function(key, value) {
      var mytest = value.split('|');
    }
}

我需要动态加载上面全局声明的3个数组中的每一个,而不是“mytest”。

我该怎么做?

我正在考虑这个问题:

function setDropDownList(raw_id, "??? how can I generate which array I need: array1 or 2 or 3?"){
    jQuery.each(the_needed_array, function(key, value) {
      var the_needed_array = value.split('|');
    }
}

在PHP中,有一些叫做变量的东西,我可以这样做。

var array_name = 'array1';

在功能中:

$$array_name;

1 个答案:

答案 0 :(得分:1)

假设这些是全局变量,您需要使用数组符号对窗口对象进行操作 如果你有

var arrname = 'array1'
window[arrname] = [1,2,3]; // window.arrname won't work but this will

然后

console.log(window.array1)

将产生

[1,2,3]

如果它们不是全局变量,你可以使用 this 而不是window来定位任何容器对象(这个实际上会引用 window 如果你在全球范围内。)

var myobj = {
  myfunc : function() {
    var an = 'iamanarray';
    this[an] = [1,2,3];
    console.log(this[an]);            // [1,2,3]
    console.log(this.an);             // undefined
    console.log(this['iamanarray']);  // [1,2,3]
    console.log(myobj.iamanarray);    // [1,2,3]
    console.log(iamanarray);          // reference error
    console.log(window.iamanarray);   // reference error
  }
}