2013-02-05 24 views
0

我正在寻找使用数组来创建变量的唯一名称。我不想将任何计算值存储在数组中,而是能够使用数组声明变量来存储值。我的尝试和研究如何做到这一点让我认为这是不可能的。如果有人能让我知道,并且如果有可能的话,我将不胜感激。我会发布一个简单的例子,说明我希望工作的内容。通过使用数组元素值声明多个变量名称

var indices = ["index01", "index02", "index03"]; 
var keys = ["key01", "key02", "key03"]; 
for (var index = 0; index < indices.length; index++) 
{ 
    for (var key = 0; key < keys.length; key++) 
    { 
     var indices[index]+keys[key] //Looking for var index01key01, var index01key02 etc... 
    } 
} 
+0

的可能的复制[字符串转换为在Javascript变量名称](http://stackoverflow.com/questions/ 5613834 /转换字符串到变量名,在JavaScript的)。这经常被问到,但我怀疑这是个好主意。 –

+0

不,你一定在做错事([XY-problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem))。你为什么要声明这么多不同的变量?改用适当的数据结构。 – Bergi

回答

0

好了,基本的JavaScript变量在window范围,所以尝试:

var indices = ["index01", "index02", "index03"]; 
var keys = ["key01", "key02", "key03"]; 
for (var index = 0; index < indices.length; index++) 
{ 
    for (var key = 0; key < keys.length; key++) 
    { 
     // you can now use the variable as window.index01key01, or just index01key01 
     window[indices[index]+keys[key]] = null; 
    } 
} 
+1

这些变量是全局定义的,但不是本地的。 OP在定义部分有'var'关键字。 – VisioN

+0

谢谢@Gareth和@Vision - 完全可以工作。这是我的汇编编码器,正在闪耀。我实际上读过其他的“将字符串转换为Javascript中的变量名”发布,但未能使其工作。但这让我意识到一些事情。在我主要使用的语言中(无可否认,它们几乎都是大型机的双面)声明总是需要的,并且它们必须始终是明确的。因此,在我尝试过的所有事情中,我都已经开始使用'var whatever',如果没有,我会在几天前找到这个解决方案。它引出了一个问题:这是一次性的是他们的许多这种情况。 – Clay