如何在多个命名属性中按日期时间对数组进行排序

戴夫亚斯德
Album.album_release_date
Ep.ep_release_date
Song.song_release_date

有没有一种简单的方法可以通过不同命名的日期时间属性对这个数组进行排序?

[album1, album2, album3, ep1, ep2, song1, song2, song3].order_by(the three differently named datetime attributes above, newest to oldest)
3limin4t0r

像这样的事情可以解决问题。

release_date_methods = {
  Album => :album_release_date,
  Ep => :ep_release_date,
  Song => :song_release_date,
}
release_date_methods.default = :release_date

releasables.sort_by { |releasable| releasable.then(&release_date_methods[releasable.class]) }

我首先创建一个包含不同类的不同方法的哈希。然后使用可发布类获取该方法并将其作为块传递给releasable.then.

但是,如果可能,最好更改方法名称。如果数组中的每个元素都响应:release_date它们,则它们符合相同的接口。这将允许您简单地使用:

releasables.sort_by(&:release_date)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在JavaScript中按日期对数组进行排序?

如何在Javascript中按属性对数组进行排序

如何在Ruby中按多个属性对数组进行排序?

按多个属性(包括日期)对数组进行排序

在JavaScript中按多个对象属性对数组进行排序

如何在javascript中按日期名称对数组进行排序?

如何在Ruby中按降序对数组进行排序

如何在Swift 4中对数组日期进行排序

如何在Swift中按日期对数组进行分组?

JS:按日期和时间对数组进行排序

按日期和时间升序对数组进行排序

按自定义日期时间对数组进行排序

如何在Python中按日期时间对对象数组进行排序?

如何在python中按日期时间对列表进行排序?

按多个属性对数组中的对象进行排序(可能性不存在)

在React JS中按日期对数组进行排序

按日期对数组中的对象进行排序

PHP中按日期对数组进行排序

如何按数组中数组的值对数组进行排序

打字稿:如何按多个条件对数组进行排序

在反应中按子属性对数组进行排序

如何通过日期属性对数组进行排序

如果JS中存在值,如何根据日期按降序对数组进行排序?

如何在MongoDB中按数组内容对数组进行排序

如何在熊猫中按日期时间对数据进行分组?

如何在Julia中按多个列对数据框进行排序

PHP - 按日期时间和单独的日期对数组进行排序

如何访问数组中对象的属性并对数组进行排序?

如何在CoreData中按日期对数组中的结果进行分组