Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用函数中的参数调用变量_Javascript_Html - Fatal编程技术网

Javascript 使用函数中的参数调用变量

Javascript 使用函数中的参数调用变量,javascript,html,Javascript,Html,我已经在函数外定义了一个变量,我需要能够根据函数调用的参数调用该变量 HTML 在这种情况下,如何将data1的参数与_Data结合起来以获得Area300_Data?除非使用eval,否则可能无法使用。 第二,除非将数据作为字符串添加,否则它将充当变量。所以要么把它放在引号内,要么使用模板文本 var Area 300_Data=somedata 函数adata,data1{ 如果数据==‘额外’{ //做点什么 }否则,如果数据==‘正常’{ console.logeval`${data1

我已经在函数外定义了一个变量,我需要能够根据函数调用的参数调用该变量

HTML


在这种情况下,如何将data1的参数与_Data结合起来以获得Area300_Data?

除非使用eval,否则可能无法使用。 第二,除非将数据作为字符串添加,否则它将充当变量。所以要么把它放在引号内,要么使用模板文本

var Area 300_Data=somedata 函数adata,data1{ 如果数据==‘额外’{ //做点什么 }否则,如果数据==‘正常’{ console.logeval`${data1}\u数据` //应该显示一些数据 } }
单击,除非使用eval,否则该选项可能不起作用。 第二,除非将数据作为字符串添加,否则它将充当变量。所以要么把它放在引号内,要么使用模板文本

var Area 300_Data=somedata 函数adata,data1{ 如果数据==‘额外’{ //做点什么 }否则,如果数据==‘正常’{ console.logeval`${data1}\u数据` //应该显示一些数据 } }
单击如果您在全局范围内,则每个变量都存储到窗口中

所以你可以

window[`${data1}_Data`]

如果您在全局范围内,则每个变量都存储在窗口中

所以你可以

window[`${data1}_Data`]

您可以将数据保存在对象中,并像访问属性一样访问该数据

e、 g

现在您可以像这样动态地访问这些数据

function a(data, data1) {
  if (data=='extra') {
    //do something
  } else if (data=='normal') {
    console.log(data[data1+'_Data'])
    //Should display "somedata"
  }
}

它将比访问窗口对象更具可读性

您可以将数据保存在对象中,并像访问属性一样访问该数据

e、 g

现在您可以像这样动态地访问这些数据

function a(data, data1) {
  if (data=='extra') {
    //do something
  } else if (data=='normal') {
    console.log(data[data1+'_Data'])
    //Should display "somedata"
  }
}
它将比访问名为data1和_Data的两个变量之间的窗口对象

data1+\u Data apply+运算符更具可读性。您不能像这样访问变量。在这种情况下,Area300_数据位于全局范围内,并使用var声明,因此它将显示在窗口中。您可以使用括号符号[]从窗口访问它

var Area 300_Data=somedata 函数adata,data1{ 如果数据==“额外”{ //做点什么 }如果数据==‘正常’,则为else{ console.logwindow[`${data1}\u Data`] //应该显示一些数据 } } 按钮data1+\u Data在名为data1和_Data的两个变量之间应用+运算符。您不能像这样访问变量。在这种情况下,Area300_数据位于全局范围内,并使用var声明,因此它将显示在窗口中。您可以使用括号符号[]从窗口访问它

var Area 300_Data=somedata 函数adata,data1{ 如果数据==“额外”{ //做点什么 }如果数据==‘正常’,则为else{ console.logwindow[`${data1}\u Data`] //应该显示一些数据 } }
button为什么不尝试创建一个使用data1作为键的对象可能是这样的

var gobalInfo = {
   Area300: "somedata"
}
function a(data, data1) {
  if (data=='extra') {
    //do something
  } else if (data=='normal') {
    console.log(globalInfo[data1]);
    //Should display "somedata"
  }
}

为什么不尝试创建一个使用data1作为键的对象呢?可能是这样的

var gobalInfo = {
   Area300: "somedata"
}
function a(data, data1) {
  if (data=='extra') {
    //do something
  } else if (data=='normal') {
    console.log(globalInfo[data1]);
    //Should display "somedata"
  }
}
只需使用eval获取变量数据。比如说

var Area300_数据=300区域数据; var Area600_数据=600区域数据; 函数adata,data1{ 如果数据==‘额外’{ //做点什么 }否则,如果数据==‘正常’{ console.logeval`${data1}\u数据` //应该显示一些数据 } } 单击以查看区域300 单击查看区域600只需使用eval获取变量数据。比如说

var Area300_数据=300区域数据; var Area600_数据=600区域数据; 函数adata,data1{ 如果数据==‘额外’{ //做点什么 }否则,如果数据==‘正常’{ console.logeval`${data1}\u数据` //应该显示一些数据 } } 单击以查看区域300 单击以查看区域600使用对象键值配对通常不需要在此处评估对象键值配对。变量存储在窗口对象中。除非代码已经进入函数上下文,但这里的情况似乎不是这样。我在window.onload函数中定义了var Area300_Date,因为变量的数据来自JSON文件。我得到错误区域300_数据在eval中未定义如何更正?实际上这里不需要eval。变量存储在窗口对象中。除非代码已经进入函数上下文,但这里的情况似乎不是这样。我在window.onload函数中定义了var Area300_Date,因为变量的数据来自JSON文件。如果在评估时未定义错误区域300_数据,如何更正?