1

これら 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}"

なんで?

4

1 に答える 1