これら 2 つのコード スニペットが同等ではない理由を説明できる人はいますか? 何かが欠けているか、inject が思った通りに動かないかのどちらかです。与えられた:
nodes = [{id: 1}, {id: 2}]
このコード:
result = Hash.new
nodes.each do |node|
result[node[:id]] = node.inspect
end
result
戻り値
{
1 => "{:id=>1}",
2 => "{:id=>2}"
}
でもこれは:
nodes.inject({}) {|hash, node|hash[node[:id]] = node.inspect}
戻り値:
"{:id=>2}"
なんで?