ruby - 按一组参数对 Ruby 数组进行排序,如果未定义则回退到下一个参数

标签 ruby sorting

<分区>

在 Ruby 中,根据可能存在或可能不存在的 order 属性对对象数组进行排序的最佳方法是什么,如果不存在,则回退到基于排序名为 title?

的属性

最佳答案

不确定这是否是您所追求的,但一个快速的解决方案可能是:

arr = [{a:"never", b:"anna"}, {a:"always", b:"bob"}, {b:"colin"}, {b:"abe"}]
arr.sort_by! {|o| o[:a] ? o[:a] : o[:b] }
#=> [{:b=>"abe"}, {:a=>"always", :b=>"bob"}, {:b=>"colin"}, {:a=>"never", :b=>"anna"}]

关于ruby - 按一组参数对 Ruby 数组进行排序,如果未定义则回退到下一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730287/

相关文章:

Ubuntu 上 rvm 下的 ruby​​ gems(未能)安装在错误的位置

javascript - ruby on Rails - 无法运行javascript

ruby - 集合的性能 V.S. Ruby 中的数组

unit-testing - 如何对 std::vector 的排序进行单元测试

python - 编写一个快速函数来检查矩阵中的元素

android - calabash-android:WAITING带有 id 的字符串出现

ruby - Rails 中的类变量在浏览器刷新时持续存在

java - QuickSort 与 MergeSort,我做错了什么?

java - 快速排序 3 种方式 - 为什么当元素大于主元时循环索引不递增?

mysql - 如何确定繁忙队列的优先级,以便低优先级项目也得到处理?