我有一系列课程,我想找到可能有计划重叠的地方。
我的数组是这样的
[ { id:2, start: "3:30", length: 40, break: 30, num_attendees: 14 }, { id: 3, start: "3: 40", length: 60, break: 40, num_attendees: 4 }, { id: 4, start: "4: 40", length: 30, break: 10, num_attendees: 40 } ]很简单。 现在,我想得到一个数组,我在其中添加开始和长度,然后获取重叠的类以通知用户他们有冲突。
我知道我可以做一个大的for循环并比较那样,但我认为必须有一个更好的方法在Ruby中做这个,比如(忽略我们在这里绝对没有工作,我得到了,我只想保持简单的例子。
overlap = class_list.select{|a,b| if a.start+a.length>b.start return a,b end}
有什么建议吗?
答案 0 :(得分:2)
您可以像这样使用Array#combination
:
class_list.combination(2).select{|c1, c2|
# here check if c1 and c2 overlap
}