art*_*net 1 ruby csv arrays hash
我有2个数组,一个哈希数组另一个键数组.我需要使哈希数组与键数组的顺序相同.我该怎么做
header = ["header1", "header2", "header3", "header4", "header5"]
record = [{"header4" =>"value4"}, {"header3" =>"value3"}, {"header5"=>"value5"}, {"header1"=>"value1"}, {"header2"=>"value2"}]
Run Code Online (Sandbox Code Playgroud)
我需要数组记录与数组头的顺序相同
record = [{"header1" =>"value1"}, {"header2" =>"value2"}, {"header3"=>"value3"}, {"header4"=>"value4"}, {"header5"=>"value5"}]
Run Code Online (Sandbox Code Playgroud)
非常感谢每一个人的帮助.我想在这篇文章中再添一个问题.我正在尝试使用下面建议的方法从数据库创建CSV文档.所以我想按特定的顺序组织列,我有这个顺序的模板,这个模板存储为标题数组,但是当我这样做时
csv<< mymodel.attributes.values.sort_by! { |h| header.index(h.keys[0])
Run Code Online (Sandbox Code Playgroud)
这是行不通的
Array#sort_by!/ Enumerable#sort_by接受一个块.块的返回值用于比较.对于您的情况,您可以使用Array#index.
header = ["header1", "header2", "header3", "header4", "header5"]
record = [{"header4" =>"value4"}, {"header3" =>"value3"},
{"header5"=>"value5"}, {"header1"=>"value1"},
{"header2"=>"value2"}]
record.sort_by! { |h| header.index(h.keys[0]) }
# => [{"header1"=>"value1"}, {"header2"=>"value2"}, {"header3"=>"value3"},
# {"header4"=>"value4"}, {"header5"=>"value5"}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |