ruby on rails 中数组排序sort_by用法

本文介绍了Ruby语言中数组排序的方法,包括单属性排序和多层次排序。通过示例展示了如何使用sort_by方法对数组进行排序,并解释了sort_by!与sort_by的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Array 数组的排序

ruby 中数组的用处很多,数组中的元素可以是数字、字符、哈希、数组等

1、单属性排序

a = [1,4,5,7,3,2,8]

a.sort_by do |p|
    p
end

输出结果:[1, 2, 3, 4, 5, 7, 8]

a = [{:x=>3,:y=>2,:z=>1},{:x=>3,:y=>1,:z=>3},{:x=>1,:y=>3,:z=>2}]

a.sort_by do |p|
    p[:x]
end

输出结果:[{:x=>1, :y=>3, :z=>2}, {:x=>3, :y=>1, :z=>3}, {:x=>3, :y=>2, :z=>1}]

2、多层次排序

a = [{:x=>3,:y=>2,:z=>1},{:x=>3,:y=>1,:z=>3},{:x=>1,:y=>3,:z=>2}]

a.sort_by do |p|
    [p[:x],p[:z]]
end

输出结果:[ {:x => 1, :y =>3, :z => 2}, {:x => 3, :y =>2, :z => 1}, {:x => 3, :y => 1, :z => 3} ]

注:ruby 中如果使用 sort_by!方法,结果为改变原数组;若使用sort_by方法,结果为新生成数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值