xx.rb
ruby
1h_array = [
2 { name: 'taro', checked: true },
3 { name: 'taro', checked: false },
4 { name: 'jiro', checked: false },
5 { name: 'jiro', checked: true },
6 { name: 'hanako', checked: false },
7 { name: 'hanako', checked: false },
8 { name: 'x', checked: true },
9 { name: 'y', checked: false },
10]
11
12new_h_array = h_array.inject({}) { |mem, rec|
13 mem[rec[:name]] ||= rec[:checked]
14 mem
15}.map { |key, val| { name: key, checked: val} }
16p new_h_array
17
18puts
19p new_h_array = h_array.inject({}) { |mem, rec|
20 mem[rec[:name]] ||= rec[:checked]
21 mem
22}
実行結果
$ ruby xxx.rb
[{:name=>"taro", :checked=>true}, {:name=>"jiro", :checked=>true}, {:name=>"hanako", :checked=>false}, {:name=>"x", :checked=>true}, {:name=>"y", :checked=>false}]
{"taro"=>true, "jiro"=>true, "hanako"=>false, "x"=>true, "y"=>false}
inject をつかって
{"taro"=>true, "jiro"=>true, "hanako"=>false, "x"=>true, "y"=>false}
を生成しています。
その後 map をつかって、 {name: xxx, checked: yyy} の形式に変換しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/13 06:03
退会済みユーザー
2017/07/13 06:04