【问题标题】:How to use a string as a variable name in Javascript? [duplicate]如何在Javascript中使用字符串作为变量名? [复制]
【发布时间】:2011-05-28 06:54:01
【问题描述】:

可能的重复:
Is there a way to access a javascript variable using a string that contains the name of the variable?
JavaScript: Get local variable dynamicly by name string

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

var chat_1 = "one";

var chat_2 = "two";

var id = "1";

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

【讨论】:

  • 嘿,谢谢你的回复,这看起来是一种非常好的方式来做我想做的事。另外,如何向这个主要聊天变量添加更多“键”/变量?
  • 你救了我的命.. 谢谢 ;)
【解决方案2】:

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

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 但我会强调不是好的做法。大多数情况下,像这样的代码是来自某些“其他”语言的结果......必须指出,这只适用于“全局变量”,不适用于定义在功能。
【解决方案3】:

您可以使用全局 window 对象,假设这些对象没有在函数内部定义:

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

【讨论】:

  • 它们是局部范围的变量。这在函数内部是行不通的。
  • @Quentin 它们可能在本地范围内(并且第二条语句成立)。但是,这个问题很模糊,它适用于“全局变量”。
  • +1 用于回答问题。提供警告和上下文很好,但我讨厌人们讲课而不是回答问题。
猜你喜欢
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 2012-07-18
  • 2017-02-05
  • 2013-06-26
  • 1970-01-01
相关资源
最近更新 更多