将 JS 变量名传递给函数

Fos*_*tah 5 javascript variables json

所以这就是我想要做的:

  1. 我的变量命名data_1已设置。

    var data_1 = {
      "y_legend": {
        "text": "# of Patients",
        "style": "{font-size: 20px; color: #778877}"
      },
      "x_legend": {
        "text": "AUG 09 - OCT 09",
        "style": "{font-size: 20px; color: #778877}"
      }
    };
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在下拉列表中,用户选择具有data_1该调用值的选项load('data_1')

    function load(data)
    {
      tmp = findSWF("my_chart");
      x = tmp.load( JSON.stringify(data) );
    }
    
    Run Code Online (Sandbox Code Playgroud)

我的问题:我选择了一个带有值的选项,data_1而不是变量本身。所以在我的函数中load('data_1'),当alert(data)我得到data = 'data_1'.

那么如何data_1通过只传递字符串的名称来获取加载函数中变量的内容呢?

Joh*_*kin 6

var data_1 = { /* data goes here */ };

var data_choices = {1: data_1, 2: data_2, /* and so on */};

var load = function (data) {
    // data is "1", "2", etc. If you want to use the full data_1 name, change
    // the data_choices object keys.

    var tmp = findSWF("my_chart");
    var x = tmp.load( JSON.stringify(data_choices[data]) );
}
Run Code Online (Sandbox Code Playgroud)


jim*_*imr 5

如果它是一个全局变量,你可以使用它来引用它

window['the_variable_name']
Run Code Online (Sandbox Code Playgroud)

例如

function load(data)
{ 
  tmp = findSWF( "my_chart" ); 
  x = tmp.load( JSON.stringify( window[data] ) ); 
}
Run Code Online (Sandbox Code Playgroud)