2012-03-04 27 views
2

は、1次元配列の要素を反復処理するには、ネストされたリストの要素の上に、私は、ネストされたリストまたは2次元配列のためにこれを行うにはどのような方法私はあり繰り返し処理

array = [1, 2, 3, 4, 5, 6] 
array.each { |x| puts x } 

使用することができますか?このコードでは:

two_d_array = [[1,2], [3,4], [5,6]] 
two_d_array.each{|array| puts array} 

私は別に、リストの各要素にアクセスして、そのようなarray[1] = "new_value"としてそれにいくつかの操作を行うことができるように[1, 2], [3, 4], [5, 6]を取得したいが、それは私が可能な場合matrixを使用しないようにしたい123456を与えます。

答えて

6

実際にあなたが期待する方法で振る舞いを行いますが、putsコマンドは、アレイが事前に平坦化されてきたかのように見えますeachブロック。あなたがinspectを追加する場合、これは明確になる:

>> two_d_array.each{|array| puts array.inspect} 
[1, 2] 
[3, 4] 
[5, 6] 

だから、各反復におけるarray変数は、ネストされた配列要素になります。

+0

また、putsの代わりにppを使用することもできます。 –

+0

two_d_array.each {| array | funct(array)}しかし、functは個々のリストを引数として受け取らない。 – primpap

+0

'funct'メソッドの外観を教えてください。 –

関連する問題