Ruby:从对象数组中的一个值创建新数组

标签 ruby arrays object

如果已经有人问过,请原谅我,我找不到。

我有一个对象数组,例如:

[<#Folder id:1, name:'Foo', display_order: 1>,
<#Folder id:1, name:'Bar', display_order: 2>,
<#Folder id:1, name:'Baz', display_order: 3>]

我想将该数组转换为仅包含名称的数组,例如:

['Foo','Bar','Baz']

而且,如果我能在以后使用相同的技术从两个参数创建一个数组,即名称和显示顺序看起来像这样,那就太好了:

[['Foo',1],['Bar',2],['Baz',3]]

做这种事情最好的“Ruby 方式”是什么?

谢谢!

最佳答案

这些怎么样?

# ['Foo','Bar','Baz']
array = folders.map { |f| f.name }
# This does the same, but only works on Rails or Ruby 1.8.7 and above.
array = folders.map(&:name)

# [['Foo',1],['Bar',2],['Baz',3]]
array = folders.map { |f| [f.name, f.display_order] }

关于Ruby:从对象数组中的一个值创建新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195943/

相关文章:

javascript - 总结对象数组的频率

ruby - "\n"和 '\n' 的长度

ruby - 如何终止 transmission-cli

java - 打印数组语句

arrays - Fortran 用户定义运算符中未分配的假定形状数组的问题

javascript - 工厂模式 - Javascript代码 - 函数不枚举

ruby-on-rails - 使用ruby 1.9.2,rails3.1.0,为什么我尝试生成脚手架时出错。

ruby-on-rails - Rails/Mongoid 与 Struct 的关系问题

java - 将 List<List<Integer>> 转换为 int[][]

java - 引用自身的类如何工作?