2012-01-30 59 views
-2

我想要做這樣的事情:如何自動修改ruby和javascript中的變量名?

for(var i=0; i < 3, i++) { 
    var file_i = i; 
} 

,並得到了局部變量:file_0 = 0,file_1 = 1,file_2 = 2

我也想知道如何使它在Ruby中發生。

+9

不要這樣做。只是...不。當你無法弄清楚爲什麼某些東西被破壞時,動態生成的變量名稱只會導致頭髮撕裂和地毯上的咀嚼。 – 2012-01-30 16:30:30

+9

...然後上帝給了我們['Arrays'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array)... – Matt 2012-01-30 16:31:47

回答

2

如果你不介意的新的變量是全球:

for(var i=0; i < 3, i++) { 
    window["file_" + i] = i; 
} 

但正如評論指出的那樣,這是一個壞主意。創建對象的這些屬性:

var files = { }; 
for(var i=0; i < 3; i++) { // <-------- typo there. Should be a ; after i < 3 
    files["file_" + i] = i; 
} 

然後你就可以用回讀這些屬性:

for (var key in files) { 
    if ({}.hasOwnProperty.call(files, key)) 
     alert(key + " " + files[key]); 
} 

我怕我不知道該怎麼用Ruby做到這一點。

+0

對象是去的方式感謝傢伙 – mko 2012-01-31 06:27:22

0
var listVar = []; 

for(var i=0; i < 3, i++) { 
    listVar["file_"+i] = i; 
} 

alert(listVar["file_1"]);// or file_2...