Массив хэшей каждый делает при определенном значении? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть массив хэшей под названием rooms, который выглядит следующим образом:

[{:room=>1, :clients=>["Jim K", "Barbara K"], :rooming_request=>"Double"},
 {:room_number=>2, :clients=>["Marcy B"], :rooming_request=>"WTS"},
 {:room_number=>3, :clients=>["Stephanie C", "Stan C"], :rooming_request=>"Twin"},
 {:room_number=>4, :clients=>["Steven W"], :rooming_request=>"SS"},
 {:room_number=>5, :clients=>["Linda W"], :rooming_request=>"SS"},
 {:room_number=>6, :clients=>["Rick M", "Linda M"], :rooming_request=>"Double"},
 {:room_number=>7, :clients=>["Deb M", "William F"], :rooming_request=>"Double"}]

И сейчас я повторяю это так:

rooms.each do |room|
   room[:room_number]
   room[:clients].join("<br>")

Что выглядит как:

1 Jim K
  Barbara K

2 Marcy B

3 Stephanie C
  Stan C

etc..

Как бы я вывел только вывод, если определенный rooming_request?

Например -

rooms.where(rooming_request: "Double").each do |room|

Спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

Использование Array#select:

rooms.select { |room_hash| room_hash[:rooming_request] == 'Double' }
     .each do |room_hash|
  # Do your magic
end

Или

rooms.each do |room|
  next unless room[:rooming_request] == 'Double'
  # Do your stuff
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...