1

好吧,伙计们,

我需要一些帮助来解决这个 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 中,有一种叫做variable variables的东西,我可以有这样的东西。

var array_name = 'array1';

在函数中:

$$array_name;
4

1 回答 1

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
  }
}
于 2013-03-01T16:45:52.457 回答