Javascript 指定字符串的变量值

Javascript 指定字符串的变量值,javascript,variable-assignment,Javascript,Variable Assignment,我不熟悉Javascript——我尝试过在web上搜索,但无法将这种情况转化为上下文 情况如下: import * as People from ./People.json import * as Education from ./Education.json import * as Vehicle from ./Vehicle.json ... function transpose(str : string) { let data = {}; if(validate(str)) //

我不熟悉Javascript——我尝试过在web上搜索,但无法将这种情况转化为上下文

情况如下:

import * as People from ./People.json
import * as Education from ./Education.json
import * as Vehicle from ./Vehicle.json
...
function transpose(str : string) {
  let data = {};
  if(validate(str))  //validate function returns true if valid string
    data = str  //data takes in the string value and uses variable name
    runFile(data); //runFile expects data to be a JSON type
  ...
}
基本上,如何将str(字符串变量转换为变量)转换为变量?如果假设str=
“People”
,那么数据将等于变量
People
,或者如果str=
“Vehicle”
数据将是
Vehicle
变量

我知道这可以通过一张{“人”:人,“车”:车}的地图来实现。看起来应该有更好的方法吗?我也研究了eval(str),但这似乎不起作用

任何帮助都将不胜感激

谢谢

地图确实是最好的方式。好消息是,您可以使用速记属性名称(ES2015)保存一些击键:

“地图”确实是最好的方式。好消息是,您可以使用速记属性名称(ES2015)保存一些击键:


如果希望将JSON作为参数传递给转置函数,则此函数非常有用

function transpose(jsonObj, str) {
  let data = {};
  if(validate(str))
  {
    data = jsonObj[str];
    runFile(data); //runFile expects data to be a JSON type
  }
  ...
}

如果希望将JSON作为参数传递给转置函数,则此函数非常有用

function transpose(jsonObj, str) {
  let data = {};
  if(validate(str))
  {
    data = jsonObj[str];
    runFile(data); //runFile expects data to be a JSON type
  }
  ...
}

我看到的唯一好方法是使用对象和括号表示法。Eval几乎从来都不是一个好主意。@Li357所以你的意思是
data=[str]
?不,mpen回答的唯一好方法是使用对象和括号表示法。评估几乎从来都不是一个好主意。@Li357那么你的意思是
data=[str]
?不,mpen的回答是啊,我希望这不是解决办法。。非常感谢@mpen+ES2015Ahh上的指针,我希望这不是解决方案。。非常感谢@mpen+ES2015上的指针