我有以下代码:
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"]
但我想要的是:
[["ABCD", "Delhi"], ["Awesome", "Bhiwandi"], ["good", "Chandigarh"]]
我可以通过以下方式获得:
arguments.map(&:name).zip(arguments.map(&:city))
但是,是否有一些更优雅的方法,例如arguments.map(&[:name, :city]).
?
答案 0 :(得分:5)
我认为它不是更优雅,但是:arguments.map { |a| [a[:name], a[:city]] }
答案 1 :(得分:4)
一种方式:
arguments.map { |o| [o.name, o.city] }
#=> [["ABCD", "Delhi"], ["Awesome", "Bhiwandi"], ["good", "Chandigarh"]]