📅  最后修改于: 2023-12-03 15:38:26.305000             🧑  作者: Mango
在 Ruby 中,可以使用 group_by
方法对数组进行分组。该方法接受一个块,用于指定分组依据,返回一个 hash,其中键是分组依据的值,值是属于该组的元素数组。
array.group_by { |element| block }
其中,array
是待分组的数组,block
用于指定分组依据。
假设有一个数组 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
,我们希望将所有奇数和偶数分别分组,可以如下实现:
numbers.group_by { |n| n % 2 }
执行上述代码,返回结果如下:
{1=>[1, 3, 5, 7, 9], 0=>[2, 4, 6, 8, 10]}
可以看到,分组依据是 n % 2
,即余数为 1 的元素放在奇数组,余数为 0 的元素放在偶数组。
如果待分组的数组中,元素是复杂结构,我们也可以使用 group_by
方法进行分组。
例如,假设有一个存放用户信息的数组 users
,其中每个元素是一个 hash,包含 :name
和 :age
两个键值对,我们可以根据年龄分组:
users.group_by { |user| user[:age] }
执行上述代码,返回结果如下:
{
20=>[
{:name=>"Alice", :age=>20},
{:name=>"Bob", :age=>20},
{:name=>"Charlie", :age=>20}
],
25=>[
{:name=>"Dave", :age=>25},
{:name=>"Eve", :age=>25}
]
}
以上就是在 Ruby 中对数组进行分组的介绍,希望对你有所帮助。