在Ruby中排序我有一個數組由函數Search.all
返回:計數出現次數在數組和on Rails的
=> [#<Search id: 7, name: "ap", presence: true, created_at: "2012-03-16 00:58:42", updated_at: "2012-03-16 00:58:42">, #<Search id: 8, name: "papier", presence: true, created_at: "2012-03-16 01:14:32", updated_at: "2012-03-16 01:14:32">, #<Search id: 9, name: "carton de jus", presence: true, created_at: "2012-03-20 22:28:53", updated_at: "2012-03-20 22:28:53">, #<Search id: 10, name: "carton de jus", presence: true, created_at: "2012-03-20 22:29:01", updated_at: "2012-03-20 22:29:01">, #<Search id: 11, name: "Papier", presence: true, created_at: "2012-03-22 20:43:36", updated_at: "2012-03-22 20:43:36">, #<Search id: 12, name: "Papier", presence: true, created_at: "2012-03-22 20:43:47", updated_at: "2012-03-22 20:43:47">, #<Search id: 13, name: "Salut", presence: false, created_at: "2012-03-24 20:34:49", updated_at: "2012-03-24 20:34:49">, #<Search id: 14, name: "carton", presence: true, created_at: "2012-03-26 19:32:03", updated_at: "2012-03-26 19:32:03">, #<Search id: 15, name: "carton", presence: true, created_at: "2012-03-26 19:32:11", updated_at: "2012-03-26 19:32:11">, #<Search id: 16, name: "carton", presence: true, created_at: "2012-03-26 19:32:15", updated_at: "2012-03-26 19:32:15">, #<Search id: 17, name: "cellulaire", presence: true, created_at: "2012-03-26 19:32:28", updated_at: "2012-03-26 19:32:28">, #<Search id: 18, name: "cellulaire", presence: true, created_at: "2012-03-26 19:32:36", updated_at: "2012-03-26 19:32:36">, #<Search id: 19, name: "montre", presence: false, created_at: "2012-03-29 00:45:26", updated_at: "2012-03-29 00:45:26">, #<Search id: 20, name: "montre", presence: false, created_at: "2012-03-29 00:45:29", updated_at: "2012-03-29 00:45:29">, #<Search id: 21, name: "montres", presence: false, created_at: "2012-03-29 00:45:32", updated_at: "2012-03-29 00:45:32">, #<Search id: 22, name: "montre", presence: false, created_at: "2012-03-29 00:45:35", updated_at: "2012-03-29 00:45:35">]
我想指望基於「名稱」相同的元素的出現次數的數量 。我知道如何找到在數組中出現次數像這樣的:['a', 'b', 'a']
與
favoris.inject(Hash.new(0)) { |h,v| h[v] += 1; h }
但如何可以使用以前的數組中?
簡單。用'h [v.name]'替換'h [v]'(或者你得到名字)。 – Linuxios 2012-03-29 00:56:23