【问题标题】:Javascript: New variable name composed of value of another variableJavascript:由另一个变量的值组成的新变量名
【发布时间】:2012-02-23 19:10:25
【问题描述】:

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

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;

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

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

【问题讨论】:

  • 为什么不直接设置 delta_seleted = true 而不是 topic = 'delta' 等...
  • 如果可以,我会的。 :D 我只发布了一些代码,所以你看不出为什么我不能只指定名称。

标签: javascript variables dynamic syntax


【解决方案1】:

试试这个

window[topic + "_selected"] = true;

【讨论】:

    【解决方案2】:

    为什么要使用变量?在我看来,您需要一个包含所有 _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;
    

    【讨论】:

      【解决方案3】:

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

      eval(topic + "_selected = true;")
      

      但请检查文档以确定。

      希望这会有所帮助。

      【讨论】:

      • 是的,我不想使用 eval。很高兴知道我可以这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2014-08-30
      • 1970-01-01
      • 2015-08-31
      • 2021-08-22
      • 1970-01-01
      相关资源
      最近更新 更多