kat*_*hri 3 ruby rubygems ruby-on-rails
我有一个哈希数组,如下所示:
sample = {:a=>1, :b=>2, :c=>{:c1=>abc, :c2=>xyz}, :d=>3}
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
1|2|abc|xyz|3
Run Code Online (Sandbox Code Playgroud)
但如果我使用命令:sample.values.join("|")
我的输出显示如下:
1|2|c1abcc2xyz|3
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。提前致谢。
sample.values.flat_map { |x| x.is_a?(Hash) ? x.values : [x] }.join("|")
#=> "1|2|abc|xyz|3"
Run Code Online (Sandbox Code Playgroud)