1

配列値を持つハッシュを 1 つの配列にマージする方法:

h = {
    one: ["one1", "one2"],
    two: ["two1", "two2"]
}

マージ後は次のようになります。

["one1","one2","two1","two2"]
4

2 に答える 2

2
h.flat_map &:last
=> ["one1", "one2", "two1", "two2"]
于 2013-04-18T12:59:52.690 に答える
2
h.values.flatten
# => ["one1", "one2", "two1", "two2"]

もちろん、キーについても同じことができます。ここで必要な唯一の理由flattenは、値自体が配列であるため、h.values単独で が返されるため[["one1", "one2"], ["two1", "two2"]]です。

また、merge 参考までに、 Ruby では別の (そして非常に便利な) ことを意味します。

(@tokland のコメントに従って) 1 つのレベルのみを平坦化することを確認したい場合は、flattenwith などのオプションの引数を指定できますflatten(1)

于 2013-04-18T12:29:31.060 に答える