4
해시 배열을 필터링하고 순서를 변경하려고합니다. 필터와 순서는 해시의 "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"
}
]
하고 두 번째 배열 : 나뿐만 첫 번째 배열이 있다면 내가 얻을 수 있었다
result = [
{
"slug" => "orange",
"label" => "Orange Label"
},
{
"slug" => "lemon",
"label" => "Lemon Label"
},
{
"slug" => "strawberry",
"label" => "Strawberry Label"
}
]
: 다음
ordered_keys = ["orange", "lemon", "strawberry"]
을, 결과는이 같은 배열이 이 필터 기능은 다음과 같습니다.
result = data.select{|x| ordered_keys.include? x.slug}
하지만 주문한 것을 얻기 위해 현명한 방법을 찾을 수 없습니다. 어떤 아이디어?
예! 그게 바로 제가 찾던 것입니다. 결과를 얻는 현명하고 간결한 방법. 굉장해! –