簡體   English   中英

如何獲取Rails數組中值的實例數?

[英]How can I get the number of instances of a value in a Rails array?

說我有這樣的數組:

["white", "red", "blue", "red", "white", "green", "red", "blue", "white", "orange"]

我想通過數組創建一個新數組,其中包含每個顏色以及它在原始數組中出現的次數。

因此,在新陣列中,它會報告“白色”出現3次,“藍色”出現2次等等......

我該怎么做呢?

更好地返回哈希...

def arr_times(arr)
  arr.inject(Hash.new(0)) { |h,n| h[n] += 1; h }
end
counts = Hash.new(0)
colors.each do |color|
    counts[color] += 1
end
result = {}
hash = array.group_by{|item| item}.each{|key, values| result[key] = values.size}
p result

我看到你用ruby-on-rails標記了這個問題。

如果這是數據庫模型/列(例如,具有顏色屬性的用戶模型),則應該在DB中進行計算:

 User.count(:all,:group=>:color).sort_by {|arr| -arr[1]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM