所以我的代码试图从一个对象数组中选择一个对象,如果找不到该对象,我想创建我的默认值。
lead_time = lead_times.select{|d| LeadTimeProfile.new unless d.day_of_week == day }
然而,据我所知,这并没有让我失去LeadTimeProfile。
有没有办法做到这一点?或者我说得对吗?
答案 0 :(得分:3)
所以我的代码试图从一个对象数组中选择一个对象,如果找不到该对象,我想创建我的默认值。
lead_time = lead_times.find{ |d| d.day_of_week == day } || LeadTimeProfile.new
答案 1 :(得分:0)
首先过滤你的数组,然后进行构造
lead_time = lead_times.select {| d | d.day_of_week == day} .map {| d | LeadTimeProfile.new(d)}
答案 2 :(得分:0)
将lambda用作参数也可以。
lead_time = lead_times.find(lambda { LeadTimeProfile.new } ){ |d| d.day_of_week == day }
答案 3 :(得分:0)
这是获得与凯尔(Kyle)发表的结果相同的结果的另一种方法。与使用或门之间没有任何区别,只是可能使链接方法更干净。
day = 2
lead_times.find(-> { LeadTimeProfile.new }) { |p|
p.day_of_week == day
}.day_of_week