4
我正在尝试过滤和重新排列哈希阵列。过滤器和顺序由另一个字符串数组定义,这些数组表示散列的"slug"
键的值。生成的数组只能包含散列,其值"slug"
键包含在slug数组中,并按照相同的顺序排序。如果我有第一个数组:按阵列键排列哈希阵列
data = [
{
"slug" => "lemon",
"label" => "Lemon Label"
},
{
"slug" => "table",
"label" => "Table Label"
},
{
"slug" => "peach",
"label" => "Peach Label"
},
{
"slug" => "strawberry",
"label" => "Strawberry Label"
},
{
"slug" => "bread",
"label" => "Bread Label"
},
{
"slug" => "orange",
"label" => "Orange Label"
}
]
与第二阵列为:
ordered_keys = ["orange", "lemon", "strawberry"]
话,结果应该是这样的一个数组:
result = [
{
"slug" => "orange",
"label" => "Orange Label"
},
{
"slug" => "lemon",
"label" => "Lemon Label"
},
{
"slug" => "strawberry",
"label" => "Strawberry Label"
}
]
我设法得到只是具有此功能的过滤功能:
result = data.select{|x| ordered_keys.include? x.slug}
但我找不到一个聪明的方法来获得有序的。有任何想法吗?
是的!这正是我所期待的。一个聪明而简洁的方式来获得结果。真棒! – 2013-04-22 23:15:27