Ruby / Rails只有相邻的数组元素
我有一个完整的对象排序数组,我想按属性分组,但前提是它们在数组中是相邻的。
a
按start
属性排序。
a = [{name: "joe", start: "9am", end: "10am"}, {name: "joe", start: "10am", end: "11am"}, {name: "harry", start: "11am", end: "12pm"}, {name: "harry", start: "12pm", end: "1pm"}, {name: "harry", start: "1pm", end: "2pm"}, {name: "joe", start: "2pm", end: "3pm"}, {name: "joe", start: "3pm", end: "4pm"}]
我想通过name
属性对相邻对象进行分组,结果如下所示:
a = [[{name: "joe", start: "9am", end: "10am"},{name: "joe", start: "10am", end: "11am"}], [{name: "harry", start: "11am", end: "12pm"},{name: "harry", start: "12pm", end: "1pm"},{name: "harry", start: "1pm", end: "2pm"}], [{name: "joe", start: "2pm", end: "3pm"},{name: "joe", start: "3pm", end: "4pm"}]]
这应该做:
a.chunk {|hash| hash[:name]}.map(&:last)