use*_*882 13 ruby arrays ruby-on-rails multidimensional-array ruby-on-rails-3
我正在使用Ruby on Rails 3.2.2和Ruby 1.9.2.
鉴于以下多维Array:
[["value1", "value1_other"], ["value2", "value2_other"], ["value3", "value3_other"]]
Run Code Online (Sandbox Code Playgroud)
我想得到(注意:我想"提取"所有"嵌套"的Array第一个值):
["value1", "value2", "value3"]
Run Code Online (Sandbox Code Playgroud)
我怎样才能以聪明的方式做到这一点?
soh*_*tti 25
您可以使用Array#collect为外部数组的每个元素执行一个块.要获取第一个元素,请传递索引数组的块.
arr.collect {|ind| ind[0]}
Run Code Online (Sandbox Code Playgroud)
正在使用:
arr = [["value1", "value1_other"], ["value2", "value2_other"], ["value3", "value3_other"]]
=> [["value1", "value1_other"], ["value2", "value2_other"], ["value3", "value3_other"]]
arr.collect {|ind| ind[0]}
=> ["value1", "value2", "value3"]
{|ind| ind[0]}您可以使用它Array#first来获取每个内部数组的第一个元素,而不是:
arr.collect(&:first)
Run Code Online (Sandbox Code Playgroud)
有关&:first语法,请阅读" Ruby/Ruby on Rails&符号冒号 ".
| 归档时间: |
|
| 查看次数: |
12175 次 |
| 最近记录: |