首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对Ruby对象属性中的对象数组进行排序?

对Ruby对象属性中的对象数组进行排序?
EN

Stack Overflow用户
提问于 2009-05-19 10:54:12
回答 9查看 90.3K关注 0票数 142

我在Ruby on Rails中有一个对象数组。我想按对象的属性对数组进行排序。有可能吗?

EN

回答 9

Stack Overflow用户

发布于 2009-05-20 13:55:46

我建议改用sort_by:

代码语言:javascript
复制
objects.sort_by {|obj| obj.attribute}

特别是在可以计算属性的情况下。

或者一种更简洁的方法:

代码语言:javascript
复制
objects.sort_by(&:attribute)
票数 250
EN

Stack Overflow用户

发布于 2009-05-19 10:56:49

是的,使用Array#sort!很容易。

代码语言:javascript
复制
myarray.sort! { |a, b|  a.attribute <=> b.attribute }
票数 36
EN

Stack Overflow用户

发布于 2016-08-05 03:04:23

升序:

代码语言:javascript
复制
objects_array.sort! { |a, b|  a.attribute <=> b.attribute }

代码语言:javascript
复制
objects_array.sort_by{ |obj| obj.attribute }

降序:

代码语言:javascript
复制
objects_array.sort! { |a, b|  b.attribute <=> a.attribute }

代码语言:javascript
复制
objects_array.sort_by{ |obj| obj.attribute }.reverse
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/882070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档