如何在Javascript中使用字符串作为变量名?

如何在Javascript中使用字符串作为变量名?,javascript,Javascript,可能的重复项: 一个简单的代码来说明我的问题- var chat_1 = "one"; var chat_2 = "two"; var id = "1"; var new = ?? variabalize( 'chat_' + id ) 我希望为变量new分配变量-chat_1的值,即“一”您可以使用全局窗口对象,假设这些对象未在函数中定义: var new = window['chat_' + id]; 这不是一个好的做法,但您可以按如下方式执行: var i=1; //win

可能的重复项:

一个简单的代码来说明我的问题-

var chat_1 = "one";

var chat_2 = "two";

var id = "1";

var new = ?? variabalize( 'chat_' + id ) 

我希望为变量new分配变量-chat_1的值,即“一”

您可以使用全局
窗口
对象,假设这些对象未在函数中定义:

var new = window['chat_' + id];

这不是一个好的做法,但您可以按如下方式执行:

var i=1;
//window['name' + i] will now access the variable

来源:

停止。重新组织代码。如果要选择带有变量的变量,则必须对它们进行逻辑分组。把它说清楚

var chat = {
    "1": "one",
    "2": "two"
};
var id = 1;
var new_is_a_keyword_and_cant_be_an_identifier = chat[id];

变量不是好的实践。考虑使用一个数组代替,DUP,…,,…,,…我放弃了。它们是局部范围的变量。这在函数内部不起作用。@Quentin它们可能是局部作用域(第二条语句适用)。然而,这个问题是模糊的,它将适用于“全局变量”。+1回答这个问题。提供警告和背景是可以的,但我讨厌人们上课而不是回答问题。+1但我不会强调好的做法。大多数情况下,像这样的代码是来自某些“其他”语言的结果。。。必须指出的是,这只适用于“全局变量”,而不适用于函数中定义的变量。嘿,谢谢你的回答,这看起来是一种很好的方式来实现我想要的。还有,我如何向这个主要聊天变量添加更多的“键”/变量?你救了我的命。。谢谢;)