map, collect, each_with_object を使って書いてみました。
a.rb
ruby
1data = [
2 { id: 1, name: 'yamada' },
3 { id: 2, name: 'tanaka' }
4]
5p data.map { |hash| hash[:name] if hash[:id] == 1 }.compact
6p data.collect { |h| h[:name] if h[:id] == 1 }.compact
7p data.each_with_object([]) { |hash, memo| memo << hash[:name] if hash[:id] == 1 }
8puts
9
10data = [
11 { id: 2, name: 'tanaka' }
12]
13p data.map { |hash| hash[:name] if hash[:id] == 1 }.compact
14p data.collect { |h| h[:name] if h[:id] == 1 }.compact
15p data.each_with_object([]) { |hash, memo| memo << hash[:name] if hash[:id] == 1 }
16puts
17
18data = [
19 { id: 1, name: 'tanaka' },
20 { id: 1, name: 'tanaka_2' }
21]
22p data.map { |hash| hash[:name] if hash[:id] == 1 }.compact
23p data.collect { |h| h[:name] if h[:id] == 1 }.compact
24p data.each_with_object([]) { |hash, memo| memo << hash[:name] if hash[:id] == 1 }
25
26
実行例:
$ ruby a.rb
["yamada"]
["yamada"]
["yamada"]
[]
[]
[]
["tanaka", "tanaka_2"]
["tanaka", "tanaka_2"]
["tanaka", "tanaka_2"]
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/18 14:09