2

次のような配列があります。

[
    {"timestamp" => 1347119549, "category" => nil},
    {"timestamp" => 1347119547, "category" => "Monkeys"},
    {"timestamp" => 1347119543, "category" => nil},
    {"timestamp" => 1347119542, "category" => "Monkeys"}
]

カテゴリが nil でない限り、タイムスタンプ (降順) で並べ替えたいと思います。その場合、未分類のエントリよりも「古い」にもかかわらず、「兄弟」と一緒に表示されるはずです。この配列をソートする必要があるため、次のようになります。

[
    {"timestamp" => 1347119549, "category" => nil},
    {"timestamp" => 1347119547, "category" => "Monkeys"},
    {"timestamp" => 1347119542, "category" => "Monkeys"},
    {"timestamp" => 1347119543, "category" => nil}
]

group_byと を使用して正しい結果を得る方法を見つけようとしsortていますが、成功していません。

4

4 に答える 4