Ruby group_by 对象?

发布于 2024-10-13 16:48:40 字数 303 浏览 2 评论 0原文

我有一个数组或不同的对象,我想按对象分组。例如,

 => [#<Graphic id: 3...">, #<Collection id: 1....">, #<Category id:...">, #<Volume id: 15...">] 
 all.size
 => 4 

我尝试过

all.group_by(Object) 

,但没有用...有关如何对一个数组中的对象进行分组的任何想法吗?

I have an array or different objects and I want to group by objects. For example

 => [#<Graphic id: 3...">, #<Collection id: 1....">, #<Category id:...">, #<Volume id: 15...">] 
 all.size
 => 4 

I tried

all.group_by(Object) 

but that didn't work...any ideas on how to groupby objects in one array?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱情眠于流年 2024-10-20 16:48:40

你想做这样的事情吗?

all.group_by(&:class)

它将按类名对数组中的对象进行分组,

编辑注释

all.group_by(&:class).each do |key, group|
   group.each{|item| puts item}
end

Key 是分组元素,obj 是键的集合,因此这将循环分组中的每个组并列出该组中的对象

您也可以在其中排序分组也很容易

all.group_by(&:class).each do |key, group|
    group.sort_by(&:attribute).each{|item| puts item}
end

Are you looking to do something like this?

all.group_by(&:class)

Which will group the objects in array by their class name

EDIT for comment

all.group_by(&:class).each do |key, group|
   group.each{|item| puts item}
end

Key is the grouping element and obj is the collection for the key, so this would loop through each group in the grouping and list the objects within that group

Also you could sort within the groupings pretty easily too

all.group_by(&:class).each do |key, group|
    group.sort_by(&:attribute).each{|item| puts item}
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文