将数组拆分为子数组

我有一个哈希数组,我想打破一个子数组的数组。

拆分的触发器是:组

master = [] master << { id: 1, group: "Brown", name: "Fred" } master << { id: 2, group: "Brown", name: "May" } master << { id: 3, group: "Brown", name: "Brian" } master << { id: 4, group: "Black", name: "Sue" } master << { id: 5, group: "Orange", name: "Helen" } master << { id: 6, group: "Orange", name: "Peter" } master << { id: 7, group: "Red", name: "Grace" } master << { id: 8, group: "Red", name: "Michael" } master << { id: 9, group: "Red", name: "Paul" } 

有没有可以实现这一目标的快速导轨function,或者我需要使用控制中断类型循环,就像我多年前使用Cobol一样… 🙂

您可能希望使用Enumerable.group_by函数对数据进行分组。

 master.group_by { |item| item[:group] } 

这会产生

 { "Red" => [{ id: 7, group: "Red", name: "Grace" },...], "Black" => ..., ... } 

master.group_by{|h| h[:group]}