Как построить хэш из Ruby из двух одинаковых размеров массивов? У меня есть два массива a = [:foo, :bar, :baz, :bof] и b = ["hello", "world", 1, 2] Я хочу {:foo => "hello", :bar => "world", :baz => 1, :bof => 2} Как это сделать? Ответ 1 h = Hash[a.zip b] # => {:baz=>1, :bof=>2, :bar=>"world", :foo=>"hello"} ... Черт, я люблю Руби. Ответ 2 Просто хотел указать, что есть несколько более чистый способ сделать это: h = a.zip(b).to_h # => {:foo=>"hello", :bar=>"world", :baz=>1, :bof=>2} Приходится согласиться на часть "Я люблю Ruby", хотя! Ответ 3 Как насчет этого? [a, b].transpose.to_h Если вы используете Ruby 1.9: Hash[ [a, b].transpose ] Я чувствую, что a.zip(b) выглядит как a является мастером, а b является подчиненным, но в этом стиле они плоские.
Ответ 1 h = Hash[a.zip b] # => {:baz=>1, :bof=>2, :bar=>"world", :foo=>"hello"} ... Черт, я люблю Руби.
Ответ 2 Просто хотел указать, что есть несколько более чистый способ сделать это: h = a.zip(b).to_h # => {:foo=>"hello", :bar=>"world", :baz=>1, :bof=>2} Приходится согласиться на часть "Я люблю Ruby", хотя!
Ответ 3 Как насчет этого? [a, b].transpose.to_h Если вы используете Ruby 1.9: Hash[ [a, b].transpose ] Я чувствую, что a.zip(b) выглядит как a является мастером, а b является подчиненным, но в этом стиле они плоские.