2012-02-23 76 views
0

最简单的价值组成新变量名通过展示代码解释:的Javascript:的另一个变量

var delta_selected = false; 
var magma_selected = false; 
var aqua_selected = false; 

// Somewhere in my functions... 
if (sumthing == 'sumthing1') { 
    topic = 'delta'; 
} else if (sumthing == 'sumthing2') { 
    topic = 'magma'; 
} else { 
    topic = 'aqua'; 
} 

// Then assign it (so if topic is delta, then delta_selected = true) 
topic + "_selected" = true; 

最后一行是行不通的。语法错误。

我需要帮助来弄清楚如何做到这一点。谢谢!

+1

为什么不直接设置** delta_seleted =真**而非**话题= '三角洲' **,等... – jmaglio 2012-02-23 19:16:00

+0

如果我可以,我将。 :D 我只发布了一些代码,所以你看不到为什么我不能指定名称。 – fahad 2012-02-23 19:55:53

回答

3

试试这个

window[topic + "_selected"] = true; 
+0

这有效!谢谢! :D – fahad 2012-02-23 19:53:51

0

在 “的eval()” 函数看看。你可能会得到类似的东西:

eval(topic + "_selected = true;") 

但检查文档,以确保。

希望这会有所帮助。

+2

虽然只是指出... eval经常皱起了眉头。 – cjstehno 2012-02-23 19:15:21

+0

是的,我不想使用eval。很高兴知道我可以这样做。 – fahad 2012-02-23 20:00:27

3

为什么使用变量?在我看来,你需要一个包含所有_selected值的单一结构。

var selected = { 
    delta:false, 
    magma:false, 
    aqua:false 
}; 

然后...

if (sumthing == 'sumthing1') { 
    topic = 'delta'; 
} else if (sumthing == 'sumthing2') { 
    topic = 'magma'; 
} else { 
    topic = 'aqua'; 
} 

selected[topic] = true; 
+2

+1,这是一个更好的主意 – 2012-02-23 19:16:05

+2

+1,赞同,更好的解决方案。 – 2012-02-23 19:17:42

+0

感谢您的建议 – fahad 2012-02-23 19:54:45