我有以下代码:
require "ostruct"
arguments = [OpenStruct.new({:name=>"ABCD", :city => "Delhi"}),
OpenStruct.new({:name=>"Awesome", :city => "Bhiwandi"}),
OpenStruct.new({:name=>"good", :city => "Chandigarh"})]
arguments.map(&:name)
#results ["ABCD", "Awesome", "good"]
Run Code Online (Sandbox Code Playgroud)
但我想要的是:
[["ABCD", "Delhi"], ["Awesome", "Bhiwandi"], ["good", "Chandigarh"]]
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式获得:
arguments.map(&:name).zip(arguments.map(&:city))
Run Code Online (Sandbox Code Playgroud)
但是,是否有一些更优雅的方式来做,像arguments.map(&[:name, :city]).?
我认为它不是更优雅,但是: arguments.map { |a| [a[:name], a[:city]] }
你应该在https://codereview.stackexchange.com/上发布这样的问题