1

さて、皆さん、

このjQueryのジレンマについて助けが必要です:

ウェブサイトのヘッダーでグローバルに宣言された 3 つの配列があります。

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

私はこのような機能を持っています:

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

「mytest」の代わりに、上記でグローバルに宣言された 3 つの配列のそれぞれを動的にロードする必要があります。

どうすればいいですか?

私は何かライムこれを考えています:

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]

それらがグローバル変数でない場合は、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 に答える