javascript - 分配字符串的变量值

标签 javascript variable-assignment

我是 Javascript 新手 - 我尝试在网络上搜索但无法将这种情况融入上下文。

情况如下:

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 = "People" 那么数据将等于变量 People 或者如果 str = “Vehicle” 数据将是 Vehicle 变量。

我知道这可以通过{“People”:People,“Vehicle”:Vehicle}的 map 来完成,似乎应该有更好的方法?我还研究了 eval(str) 但这似乎并没有解决问题。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

“ map ”确实是最好的方法。好消息是,您可以使用简写属性名称来保存一些击键 (ES2015):

import * as People from ./People.json
import * as Education from ./Education.json
import * as Vehicle from ./Vehicle.json

const lookup = {People,Education,Vehicle}; // equivalent to {"People":People, ...}

function transpose(str : string) {
  let data = {};
  if(validate(str))  //validate function returns true if valid string
    data = lookup[str]  //data takes in the string value and uses variable name
    runFile(data); //runFile expects data to be a JSON type
  ...
}

关于javascript - 分配字符串的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51255796/

相关文章:

Javascript Element.style CSSStyleDeclaration 对象的属性看起来很奇怪?

python - 为什么我不能在迭代另一个字典时修改一个字典(获取更改大小错误)?

perl - 标量上下文中的列表赋值

javascript - 点击提交函数后如何将值传递给$(document).ready(function(){})-JQUERY

javascript - 由于 http 导致 CORS 不匹配

Javascript 无法在 IIS7.5 上的网站内运行 - Windows Server 2008 R2

javascript - 向上/向下舍入公式的元素,直到结果为整数

java - 使用反射动态创建和分配对象

C++ 按值传递和按引用传递函数内的赋值之间有区别吗?

c 结构变量赋值中的编译错误