###前提
以下のような形式のデータがあります。
ruby
1pages = [ 2 { 3 data: {id: "0", category: "apple"}, 4 date: "2000-01-01" 5 }, 6 { 7 data: {id: "1", category: "banana"}, 8 date: "2000-01-02" 9 }, 10 { 11 data: {id: "2", category: "apple"}, 12 date: "2000-01-03" 13 }, 14 { 15 data: {id: "3", category: "banana"}, 16 date: "2000-01-04" 17 }, 18 { 19 data: {id: "4", category: "apple"}, 20 date: "2000-01-05" 21 } 22]
これを category の値でグループ分けをし、以下のような形式にしたかったので
ruby
1categories = [ 2 { 3 "apple" => [pages[0], pages[2], pages[4]] 4 }, 5 { 6 "banana" => [pages[1], pages[3]] 7 } 8]
以下の処理を行いました。
ruby
1categories = pages.group_by {|page| page[:data][:category]}
###実現したいこと
以下のように、category が配列の場合も、同じような形式変換を行いたいのですが、処理の書き方が分かりません。
調べてはみたのですが、解決の糸口が見つけられず、初めて投稿いたしました。
分かりにくい説明で申し訳ありませんが、分かる方いらっしゃいましたらお教えください。
よろしくお願いします。
ruby
1pages = [ 2 { 3 data: {id: "0", category: ["apple", "banana"]}, 4 date: "2000-01-01" 5 }, 6 { 7 data: {id: "1", category: ["banana"]}, 8 date: "2000-01-02" 9 }, 10 { 11 data: {id: "2", category: ["apple"]}, 12 date: "2000-01-03" 13 }, 14 { 15 data: {id: "3", category: ["apple", "banana"]}, 16 date: "2000-01-04" 17 }, 18 { 19 data: {id: "4", category: ["apple"]}, 20 date: "2000-01-05" 21 } 22]
変換後(やりたい理想)
ruby
1categories = [ 2 { 3 "apple" => [pages[0], pages[2], pages[3], pages[4]] 4 }, 5 { 6 "banana" => [pages[0], pages[1], pages[3]] 7 } 8]
###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.4.0p0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/12 13:57