2011-08-15 8 views
2

における配列/ハッシュだから私は、渡されるいただきました!に応じて、ハッシュや配列を作成thatsのループを持っているに名前を付ける。は動的ルビー

私は、渡されるいただきました!に基づく名前でこれらの配列やハッシュを作成する必要があります。

JavaScriptで

window['MyNewArray-' + i] = []; 

とほとんど同じその。 Rubyに相当するものはありますか?同じコードがあまりにも、Rubyで作業を行い、そして同じことを

window = {} 
5.times do |i| 
    window["my_new_array_#{i}"]=[] 
end 
+2

あなたのコードは、最も可能性の高い壊れているダイナミックな名前の変数を作成する必要がある場合。要素を配列/ dict-likeコンテナに入れることを検討してください。 – ThiefMaster

+0

それはネストされた配列を持っており、それらをレベルアップさせたいからです。だから、コンテナ[0] [0]というIDではなく、一番上のレベルの配列をアクセスすることが好きです。実際にはその種の必要性。私がやる共通のことではありません。 – OVERTONE

答えて

4

あなたのような何かを行うことができます。

h = {} 

をしてからstoreまたは[]=演算子を使用してキー/値のペアを追加します。

+1

私は彼が実際の変数を望んでいると確信していますが、 'window'(JavaScriptのグローバルスコープ)というオブジェクトではありません。 – ThiefMaster

2

こと:

+1

数字だけを文字列 'window ['MyNewArray-' + i.to_s] = [];' – fl00r

+0

@ fl00rに変換する必要があります。慣用的な方法は、文字列補間を使うことです: 'window [" MyNewArray - #{i} "] = []'。 –

2

さてあなたは使ってRubyのハッシュを作成することができます。このよう

h["foo_#{i}"] = [] 

Documentation

1
window = Hash[1.upto(5).map { |n| ["name-#{i}", []] }]