From: James Edward Gray II Date: 2007-07-17T00:03:54+09:00 Subject: Re: clean nice way (hash) On Jul 16, 2007, at 9:36 AM, Robert Klemme wrote: > 2007/7/16, Chris Carter : >> On 7/16/07, James Edward Gray II wrote: >> > On Jul 16, 2007, at 5:58 AM, hemant wrote: >> > >> > > a.inject({}) {|mem,(key,value)| mem[key] = {'name' => value}; >> mem } >> > >> > I would write that as: >> > >> > a.inject(Hash.new) { |h, (k, v)| h.merge(k => v) } >> > >> > James Edward Gray II >> > >> > >> >> But that doesn't yield what he wanted... You could do >> a.inject(Hash.new){|h,(k,v)| h.merge(k => { 'name' => value})} > > Still it's inefficient because of all the small Hashes that are thrown > away immediately. The solution provided by hemant is better although > not as elegant. If that bothers you, change merge() to merge!(). James Edward Gray II