从map执行两个方法

Sau*_*abh -1 ruby arrays map

我有以下代码:

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]).

zis*_*she 5

我认为它不是更优雅,但是: arguments.map { |a| [a[:name], a[:city]] }

你应该在https://codereview.stackexchange.com/上发布这样的问题