【发布时间】:2014-10-27 01:37:18
【问题描述】:
我试图从最低到最高的哈希数组中返回一个值列表。我正在使用 google_drive gem 从谷歌电子表格中提取数字,显示足球信息:
这是我所在的地方:
require 'rubygems'
require 'google_drive'
session = GoogleDrive.login("EMAIL", "PASS")
v_qb_w1 = session.spreadsheet_by_key("xxxxxxxx").worksheets[0]
@quarterbacks = [
{ name: v_qb_w1[2, 1], projection: v_qb_w1[2, 2], salary: v_qb_w1[2, 3], dpp: v_qb_w1[2, 4], ppd: v_qb_w1[2, 5] },
{ name: v_qb_w1[3, 1], projection: v_qb_w1[3, 2], salary: v_qb_w1[3, 3], dpp: v_qb_w1[3, 4], ppd: v_qb_w1[3, 5] },
{ name: v_qb_w1[4, 1], projection: v_qb_w1[4, 2], salary: v_qb_w1[4, 3], dpp: v_qb_w1[4, 4], ppd: v_qb_w1[4, 5] }
]
puts "Value:"
@quarterbacks.sort_by do |key, value|
dpp = []
dpp << key[:dpp].to_f.to_s
puts dpp.flatten.sort.reverse
end
最后一个块只是我尝试将 :dpp 键值从最低到最高排序的尝试之一。没有什么会失败,它只是不会改变任何东西。我已经尝试了 grouby_by 方法,但没有安排我的关键值
解决方案:
@quarterbacks.sort_by! { |qb| qb[:dpp] }
@quarterbacks.each { |qb| puts qb[:dpp] }
【问题讨论】:
标签: ruby arrays sorting hash rubygems