Javascript 将字符串转换为对象的名称(强制转换)

Javascript 将字符串转换为对象的名称(强制转换),javascript,string,object,casting,Javascript,String,Object,Casting,我想向现有对象强制转换字符串。 背景:我只使用JS,没有库,也没有服务器端代码。我有我想要显示的元素的现有对象。我使用一个查询字符串传递对象的名称,因此它以字符串的形式到达。示例?Room=Cube,我得到的是 nextRoom = getQueryString(); // which returns a string 我想显示立方体对象。但是,如果我调用一个显示函数,nextRoom包含“Cube”,JS没有帮助: display(nextRoom) Javascript将其视为字符串并

我想向现有对象强制转换字符串。 背景:我只使用JS,没有库,也没有服务器端代码。我有我想要显示的元素的现有对象。我使用一个查询字符串传递对象的名称,因此它以字符串的形式到达。示例
?Room=Cube
,我得到的是

nextRoom = getQueryString();  // which returns a string
我想显示立方体对象。但是,如果我调用一个显示函数,nextRoom包含“Cube”,JS没有帮助:

display(nextRoom)
Javascript将其视为字符串并失败。现在我用这个对象来伪装它:

castToObj{"Cube":Cube, "Other":Other, "Etc":Etc, ........}
  .....  
room = castToObj[nextRoom];    // accessing the object returns the room Object
然后我可以通过呼叫显示房间:

display(room);  // now JS treats the parameter as an object
但这需要我每次添加房间时重写代码来修改
castToObj{}
内容。我想要一种将“立方体”转换为立方体的方法,换句话说,将字符串转换为对象。我尝试过许多变化,但都没有成功。我可以列举我尝试过的方法,但这似乎毫无意义,因为它们都是失败的。 救命啊!求你了


S。我在学习C++、OOP、EtcTeA之前退役了二十年,所以我的JavaScript技能只是我的“C”编程经验。

< p>可以使用java脚本EVAL函数,但根据情况,它可能会打开程序到XSS攻击。你应该小心使用它

首先创建一个空容器对象:

myElements = {};
然后在定义元素的任何位置更改代码,从

Cube =  ... whatever ...

对于您的所有元素(其他等…)

在此之后,您只需使用

nextRoom = getQueryString(); 
display(myElements[nextRoom]);

“多维数据集”对象是否存储在任何位置,并且您希望按其名称检索它?您能解释一下多维数据集等是如何定义的吗?听起来好像您在寻找
JSON.parse()
,但您并没有真正解释
getQueryString()
返回的内容,或者
display()返回的内容
需要。很抱歉,我并没有用@xxxx标记您以接收更新。下面的解决方案是由用户3703422提供的。谢谢大家的帮助。msandersfantastic!我在我的简单测试程序中使用console.log来测试是否传递了一个对象,它工作得非常好!我现在明白了,这只是我的kluge castToObj{}的一个更优雅的版本。我记得在某个地方读到,[name]可以是字符串或元素,这对于我当前的版本来说已经太晚了,但对于未来的编码来说会很好。“谢谢你,这对你有用,”msanderz说。是的,这与您的解决方案基本相同,只是语法不同。请接受我的答案(点击复选标记接受)!
nextRoom = getQueryString(); 
display(myElements[nextRoom]);