如何在将值附加到数组
之后计算符号值这样
a=[]
a<<1 count of 1 is 1
a<<1 count of 1 is 2
感谢
答案 0 :(得分:3)
你可以这样做:
a.select{|v| v == 1}.size
这只是一个解决方案
答案 1 :(得分:1)
有人可能会想出一个更专业的解决方案,但我会减少它
counts = [1,3,3].reduce({}) do |acc,n|
acc.tap do |a|
a[n] ||= 0
a[n] += 1
end
end
counts.each {|k,v| puts "#{k} was found #{v} times"}
(请注意,tap为ruby 1.9,并在activesupport中向后移植)
的输出将是
1被发现1次 3次被发现2次
答案 2 :(得分:0)
a = [1,2,3,4,5,1,2,2,3,4]
=&GT; [1,2,3,4,5,1,2,2,3,4]
a.uniq.each do | i |
&GT?; put i.to_s +'已出现'+ a.count(i).to_s +'次'
端
1出现了2次
2已出现3次
3已出现2次
4已出现2次
5已出现1次
=&GT; [1,2,3,4,5]