C. *_*jne 3 arrays datatable ruby-on-rails multidimensional-array
我想要做的是以下内容:我有一个从数组构建的表.让我们说:
_________
| a | b |
| c | d |
| e | f |
Run Code Online (Sandbox Code Playgroud)
现在我希望它"转换"为:
_____________
| a | c | e |
| b | d | f |
Run Code Online (Sandbox Code Playgroud)
Ruby:1.9.3
Rails:3.2.8
a = [['a','b'],
['c','d'],
['e','f']]
array_for_table = conv_array_for_table a
=> [['a','c','e'],
['b','d','f']]
Run Code Online (Sandbox Code Playgroud)
Array Class Doc,但我在这里找不到任何相关内容.
以为我可能不得不对哈希或其他东西进行处理.所以
,问题
给定一个数组:
array = [[:a,:b],[:a,:c],[:c,:b]]返回以下哈希:
hash = { [:a => [:b,:c]] , [:c => :b] }散列[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
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
我认为你要搜索的是矩阵转置..看看这里:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/matrix/rdoc/Matrix.html#method-i-transpose
所以你基本上所要做的就是打电话:
a.transpose()
Run Code Online (Sandbox Code Playgroud)
甚至更短:
a.t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |