在javascript中的现有变量名称中添加变量

时间:2012-07-30 15:58:08

标签: javascript

在开始时我声明一个这样的变量:

var content = "likes";

var main_likes_data = true;

后来我想将变量更改为false,但我需要添加一个像这样的新变量:

main_" + content + "_data = false;

但这不起作用!

有人可以告诉我正确的sytax来改变变量吗?

谢谢!!!

3 个答案:

答案 0 :(得分:4)

你需要一个关联数组。

var content = "likes";
var main_data = {
   likes: true,
   somethingelse: false,
   xyz: false
};

main_data[content] = false;

答案 1 :(得分:0)

window["main_" + content + "_data"] = true;

这可以作为

a)默认情况下,没有定义范围的变量是针对window对象的范围  b)您可以使用javascript中的方括号表示法与点符号互换。方括号表示法采用字符串。字符串可以使用变量连接。

实例:http://jsfiddle.net/bX5Zy/

答案 2 :(得分:0)

这是非常糟糕的编程习惯,但您可以使用eval:

eval("main_" + content + "_data = false");

我个人不会自己使用eval,但其他人会这样做。引用John Resig:

  

“绝大多数[评估]被贬低,滥用和彻底谴责   大多数JavaScript程序员,但通过查看一些的工作   你可以看到最好的编码器,当适当使用时[它]允许   用于创建一些不可能的奇妙代码   否则可能“

John Resig,Secrets of the JavaScript Ninja