gpt4 book ai didi

ruby - 按另一个数组排序哈希数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:22:59 26 4
gpt4 key购买 nike

我有 2 个数组,一个哈希数组,另一个键数组。我需要使哈希数组与键数组的顺序相同。我该怎么做

header = ["header1", "header2", "header3", "header4", "header5"]
record = [{"header4" =>"value4"}, {"header3" =>"value3"}, {"header5"=>"value5"}, {"header1"=>"value1"}, {"header2"=>"value2"}]

我需要数组记录以与数组标题相同的顺序放置

record = [{"header1" =>"value1"}, {"header2" =>"value2"}, {"header3"=>"value3"}, {"header4"=>"value4"}, {"header5"=>"value5"}]

非常感谢大家的帮助。我想在这篇文章中再添加一个问题。我正在尝试使用下面建议的方法从数据库创建 CSV 文档。所以我想按特定顺序组织列,我有这个顺序的模板,这个模板存储为标题数组,但是当我这样做的时候

csv<< mymodel.attributes.values.sort_by! { |h| header.index(h.keys[0])

没用

最佳答案

Array#sort_by!/Enumerable#sort_by接受一个 block 。 block 的返回值用于比较。对于您的情况,您可以使用 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"}]

关于ruby - 按另一个数组排序哈希数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com