3

私がやりたいことは次のとおりです。配列から作成されたテーブルがあります。まあ言ってみれば:

_________
| a | b |
| c | d |
| e | f |

今、私はそれを次のように「変換」したい:

_____________
| a | c | e |
| b | d | f |

使用:

ルビー:1.9.3
レール:3.2.8

ゴール:

a = [['a','b'],
     ['c','d'],
     ['e','f']]

array_for_table = conv_array_for_table a
=> [['a','c','e'],
    ['b','d','f']]

リサーチ:

Array Class Docですが、これについては何も見つかりませんでした。

ハッシュの配列などで何かをしなければならないかもしれないと思った..そう
、質問

与えられた配列:
array = [[:a,:b],[:a,:c],[:c,:b]]

次のハッシュを返します。
hash = { [:a => [:b,:c]] , [:c => :b] }

Hash[array] は以前の関連付けを上書きし、以下を生成します。
hash = { [:a => :c] , [:c => :b] }

ポジティブな結果のない自己思考

多分私はハッシュで何かをするべきですか?

1.9.3p194 :018 > def conv_array a=[]  
1.9.3p194 :019?>   conv_a = []  
1.9.3p194 :020?>   a.each do |k,v|  
1.9.3p194 :021 >       conv_a.push(k)  
1.9.3p194 :022?>   end  
1.9.3p194 :023?>   a.each do |k,v|
1.9.3p194 :024 >       conv_a.push(v)
1.9.3p194 :025?>   end
1.9.3p194 :026?> end  

誰かがこの問題で私を助けることができますか?

4

1 に答える 1

5

あなたが探しているのは行列の転置だと思います..ここを見てください:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/matrix/rdoc/Matrix.html#method-i-transpose

したがって、基本的にあなたがしなければならないことは、次のように呼び出すことだけです:

a.transpose()

またはさらに短い:

a.t
于 2012-11-07T13:18:24.870 に答える