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

IT技术 javascript
2021-02-19 02:38:26

可能的重复:
有没有办法使用包含变量名称的字符串访问 javascript 变量?
JavaScript:通过名称字符串动态获取局部变量

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

var chat_1 = "one";

var chat_2 = "two";

var id = "1";

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

我希望变量 new 被分配变量的值 - chat_1 是“一”

3个回答

停止。重新组织您的代码。如果要选择带有变量的变量,则必须对它们进行逻辑分组。让它明确。

var chat = {
    "1": "one",
    "2": "two"
};
var id = 1;
var new_is_a_keyword_and_cant_be_an_identifier = chat[id];
嘿,谢谢你的回复,这看起来是一种很好的方式来做我想做的事。另外我如何向这个主要的聊天变量添加更多的“键”/变量?
2021-04-21 02:38:26
你救了我的命……谢谢;)
2021-04-22 02:38:26

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

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

资料来源:http : //www.i-marco.nl/weblog/archive/2007/06/14/variable_variables_in_javascri

+1 但我要强调不是好的做法大多数时候像这样的代码是来自某些“其他”语言的结果......必须指出这仅适用于“全局变量”,不适用于函数中定义的变量。
2021-05-06 02:38:26

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

var new = window['chat_' + id];
@Quentin 他们可能是本地范围的(第二条语句成立)。然而,这个问题是模糊的,它适用于“全局变量”。
2021-04-23 02:38:26
+1 用于回答问题。提供警告和上下文很好,但我讨厌人们讲课而不是回答问题。
2021-04-25 02:38:26
它们是局部范围的变量。这在函数内部是行不通的。
2021-05-09 02:38:26