【发布时间】:2020-07-11 21:37:29
【问题描述】:
我正在尝试对平均整数数组求和。
我的助手中有以下类以及它们返回的数组示例:
def day_of_week_yard_activity
YardActivity.group_by_day_of_week(:date, format: "%A").joins(:line_transactions)
end
def full_deliver_avg
day_of_week_yard_activity.average(:full_deliver).map { |d,n| [d, n.to_f.round]}
end
def full_recieve_avg
day_of_week_yard_activity.average(:full_recieve).map { |d,n| [d, n.to_f.round]}
end
def empty_recieve_avg
day_of_week_yard_activity.average(:empty_recieve).map { |d,n| [d, n.to_f.round]}
end
def empty_deliver_avg
day_of_week_yard_activity.average(:empty_deliver).map { |d,n| [d, n.to_f.round]}
end => [["Sunday", 0], ["Monday", 1], ["Tuesday", 2], ["Wednesday", 1], ["Thursday", 2], ["Friday", 1], ["Saturday", 0]]
我尝试了以下方法按位置 [0] 对每个位置进行分组,并将 [1] 位置相加,但我正在接收随机位置 [0]:
def averaged_summed_total_transactions
[full_deliver_avg, full_recieve_avg, full_deliver_avg, empty_deliver_avg].group_by(&:first).map { |d,n| [d, n.map(&:last).inject(:+)]}
end
=> [[["Sunday", 0], ["Saturday", 0, "Saturday", 0, "Saturday", 0, "Saturday", 0]]]
我期待的是收到一个类似于以下的数组:
[["Sunday", 0], ["Monday", 4], ["Tuesday", 8], ["Wednesday", 4], ["Thursday", 8], ["Friday", 4], ["Saturday", 0]]
我想我误解了group_by(&:first) 和/或(&:last).inject(:+)。
【问题讨论】:
-
也许您想更清楚地提供输入数据和预期输出?