我有一个对象数组,如下所示:
vendors = [
{
name: "Junction"
},
{
name: "Woodside",
is_new: "on"
},
{
name: "Midtown"
}
]
Run Code Online (Sandbox Code Playgroud)
什么是更好的方式ruby通过属性"is_new"的存在来订购这个数组.我希望带有"is_new"属性的对象出现在顶部.
有sort_by方法:
vendors.sort_by { |v| v[:is_new] ? 0 : 1 }
Run Code Online (Sandbox Code Playgroud)
您只需要创建每个元素使用的"排序键",然后对数组进行排序,就好像它们是值一样.任何可排序的值,如数字或字符串都可以使用.