• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby的sort方法的重新认识

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ruby中的sort方法,这个方法可以加一个两个参数的block,这个block可以返回1 0 -1来表示这两个参数大于 等于 小于
示例:

str = ["192.160.175","192.160.90","192.168.2.175","192.168.2.90","192.168.1.180","192.160.90.1"]

arr = str.sort do |a, b|
    ip1 = a.split('.').map &:to_i
    ip2 = b.split('.').map &:to_i
    ret = 0
    ip1.each_with_index do |ip, i|
      if ip2[i].nil?
        ret = 1
        break
      end
      if ip != ip2[i]
        ret = ip <=> ip2[i]
        break
      end
    end
    ret = ret == 0 && ip1.size > ip2.size ? 1 : ret
end
p arr

输出:

["192.160.90","192.160.175","192.160.90.1","192.168.1.180","192.168.2.90","192.168.2.175"]

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap