我有一个数组:

    ak = [10, 20, 3, 4, 5, -5, 28, 27]

我想要这样的解决方案:
    #even:4
    #odd:3
    #positive:7
    #negative:1

我怎么用散列来做?

最佳答案

假设(基于您期望的输出)您只需要正数或奇数:

h = Hash.new
h["even"] = ak.select {|x| x.even? && x > 0}.count
h["odd"] = ak.select {|x| x.odd? && x > 0}.count
h["positive"] = ak.select {|x| x > 0}.count
h["negative"] = ak.select {|x| x < 0}.count

puts h

关于ruby - 使用散列分辨正数,奇数,偶数和负数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29736146/

10-12 02:56