0

私はこのハッシュを持っています

- "title" : "The Today Show",
- "category; "Show",
- "channel-name": "CNBC",
- "scheduling" => 
       { "start" : "7am", "stop" : "9am"},
       { "start" : "10am", "stop" : "11am"},
       { "start" : "11am", "stop": "12am"}
- "title" : "How I met your mother",
- "category; "Show",
- "channel-name": "CBS",
- "scheduling" => 
       { "start" : "7pm", "stop" : "9pm"},
       { "start" : "10pm", "stop" : "12pm"},
       { "start" : "11am", "stop": "12am"}

「午後 7 時」から「午後 9 時」の間に少なくとも 1 つのスケジュールがある番組のみを「選択」する必要があります。

私はこれを試しましたが、うまくいきません

programs.select_by{|p| 
      p.scheduling.each{|ps|
         ps.start <= "7pm" && ps.stop <= "9pm"
   }
}

PS:このコードを読みやすくするためだけに、日付比較に疑似コードを使用しました:)

4

1 に答える 1

2

これを試して

programs.select do |p| 
  p.scheduling.any? do |ps|
    ps.start >= "7pm" && ps.stop <= "9pm"
  end
end
于 2013-01-28T21:36:26.353 に答える