下面代码的目标是生成一个哈希,其键是:id
字段
original_array
中的哈希值,以及original_array
中包含:id
的所有元素的值。
original_array = [
{:id => '123', :name => 'test'},
{:id => '123', :name => 'another test'},
{:id => '456', :name => 'yet another test'}
]
new_hash = {}
original_array.each do |a|
new_hash[a[:id]] = original_array.select {|x| x[:id] == a[:id]}
end
我的代码可以做到这一点,但必须有更好的方法来实现它,理想情况下可以在一步中创建哈希。如果有人可以建议并解释一个(希望我可以提高我对这类事情的理解),那么我们将不胜感激。