ruby - 根据对象属性对对象数组进行排序
问题描述
我有一个像这样的数组:
[
{
"name": "aabb",
"commit": {
"id": "1",
"message": "aabb ",
"committed_date": "2018-04-04T15:11:04.000+05:30",
"committer_name": "ak",
"committer_email": "ak@ak.in"
},
"protected": false
},
{
"name": "aacc",
"commit": {
"id": "2",
"message": "aacc ",
"committed_date": "2018-02-04T15:11:04.000+05:30",
"committer_name": "ak",
"committer_email": "ak@ak.in"
},
"protected": false
},
{
"name": "aadd",
"commit": {
"id": "3",
"message": "aadd ",
"committed_date": "2018-04-01T15:11:04.000+05:30",
"committer_name": "ak",
"committer_email": "ak@ak.in"
},
"protected": false
}
]
我需要根据committed_date
. 我怎么做?
我必须循环并编写自定义排序函数还是 Ruby 提供了一些开箱即用的东西?
解决方案
使用 sort_by
array.sort_by {|obj| obj.attribute}
或者更简洁
array.sort_by(&:attribute)
在你的情况下
array.sort_by {|obj| obj[:commit][:committed_date]}
推荐阅读
- google-sheets - Google-Sheet - 查询多个未知工作表?
- css - Flexbox 或@media
- ios - 在 webview 中打开链接,在应用程序消息中使用 firebase
- angularjs - 当我没有安装办公室时,ng2-file-upload 不起作用
- git - Git 挂在大多数命令上,例如 list config
- triggers - 审核表中不接受空值
- python - 使用 Python 从 Abaqus FieldValueArray 访问单个值
- python - 调出饼图matplotlib中重叠的标签
- python - pip install 不会向 pipFile 或 pipFile.lock 添加任何内容
- julia - Julia 中连接的替代品是什么?