对此我还比较陌生,因此在接受新手之前要道歉。我一直在一个项目中,我想从哈希/数组中获得最高,最低的总和。我已经尝试了很多次,但是通常我会得到一个错误,例如fixNum无法将int转换为字符串和未定义的方法。我将尝试解决这些问题,然后遇到另一个问题,所以我很茫然。对于我的文本文件中的记录,我有1,Foo,22 2,Smith,30
,我的输出看起来像这样{1=>["Foo",22], 2=>["Smith",30]}
:对于不同的输出,我希望最大的数字显示30,最低的显示22,总计52。
答案 0 :(得分:2)
您可以按照以下步骤进行操作,然后假设变量a = {a: [a,1],b: [b,1] }
values = a.values.map(&:last) //Gives the last element of each array
max= a.max
min = a.min
sum = a.sum
答案 1 :(得分:1)
好的,这很丑陋,可能有人会对此进行改进,但是可以。假设我了解您想要的输出。
elements = h.map{ |element| element[1] }.map { |element| element[1]}
# sum
elements.sum
# highest
elements.max
# lowest
elements.min
答案 2 :(得分:0)
转换为散列并根据值计算最小最大值
data = "1,Foo,22 2,Smith,30"
people =
data.split(",")
.each_slice(3)
.map {|slice| [slice[0], [slice[1], slice[2]]] }
.to_h
values = people.values.map {|person| person[1] }
min = values.min
max = values.max
sum = values.sum