在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