javascript - 分配字符串的变量值
问题描述
我是 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
...
}
"People"
本质上,如果假设 str = then data 将等于变量People
或者如果 str = "Vehicle"
data 将是变量,我如何将 str (字符串变量转换为变量)Vehicle
。
我知道这可以通过 {"People": People, "Vehicle": Vehicle} 的地图来完成,似乎应该有更好的方法?我也研究了 eval(str) 但这似乎没有奏效。
任何帮助,将不胜感激。
谢谢
解决方案
“地图”确实是最好的方法。好消息是您可以使用速记属性名称(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
...
}
推荐阅读
- multithreading - Hyper TLS 无法在 Tokio 线程中运行 - 未实现发送
- ios - 在用户关闭互联网之前是否有任何快速函数调用?
- c# - 将数字四舍五入以显示不带小数的数字
- python - 如何删除有一个额外字母的重复项?
- opc-ua - OPC UA:对安全通道和会话使用相同的证书和私钥
- python - 在熊猫的数据框中分离“网络”
- android - Flutter:应该将 app/build 文件夹和文件包含在 git ignore 中吗?
- flutter - 缩放更改了侦听器
- java - 如何使用瘦客户端在不将 jar 放入集群节点的情况下自动部署计算任务
- pytorch - 在 PyTorch 中计算所有 GPU 中所有示例的损失函数