我有两种方法:
pwsplayerindex
找到一个多次出现在数组中的人,并给出其姓名所在的索引。
statarray
使用pwsplayerindex
中的索引#来查找包含哈希值的数组中的其他数据。
def pwsplayerindex(inplayer)
arr = Array.new
pwsarr.each_with_index do |val,index|
if val['player'] == inplayer then arr << index end
end
arr
end
def statarray(index,stat)
indexarr = Array.new
pwsplayerindex((pwsarr[index]['player'])).each { |x| puts (pwsarr[x][stat])}
end
print statarray(0,'play')
为什么结果会产生:
51.0
29.9
29.4
28.1
24.6
16.6
[0,82,88,113,192,472]
我希望它给我的是:
51.0
29.9
29.4
28.1
24.6
16.6
答案 0 :(得分:2)
puts statarray(0,'play')
应该只是
statarray(0,'play')
否则你打印函数的返回值,这是整个数组(因为each
方法)
答案 1 :(得分:0)
这就是我拍摄的内容:
def pwsplayerindex(inplayer)
arr = []
pwsarr.each_with_index do |val,index|
if val['player'] == inplayer then arr << index end
end
arr
end
def statarray(i,stat)
indexarr = Array.new
pwsplayerindex((pwsarr[i]['player'])).each do |x|
indexarr << pwsarr[x][stat]
end
indexarr
end
puts statarray(0,'play')
这给了我在原始问题中的目标。这是一个简单的修复。我没有意识到我正在使用该方法进行打印。