Javascript:由另一个变量的值组成的新变量名

时间:2012-02-23 19:10:26

标签: javascript variables dynamic syntax

通过显示代码最容易解释:

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;

这最后一行不起作用。语法错误。

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

3 个答案:

答案 0 :(得分:3)

试试这个

window[topic + "_selected"] = true;

答案 1 :(得分: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 :(得分:0)

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

eval(topic + "_selected = true;")

但请检查文档以确定。

希望这有帮助。