ruby - 从 map 返回多个值

标签 ruby arrays map each enumerator

有什么办法可以做到:

a = b.map{ |e| #return multiple elements to be added to a }

不是为要添加到 a 的每个迭代返回单个对象,而是可以返回多个对象。

我目前正在通过以下方式实现这一目标:

a = []
b.map{ |e| a.concat([x,y,z]) }

有没有办法在一行中完成此操作而无需预先声明 a = []

最佳答案

使用Enumerable#flat_map

b = [0, 3, 6]
a = b.flat_map { |x| [x, x+1, x+2] }
a # => [0, 1, 2, 3, 4, 5, 6, 7, 8]

关于ruby - 从 map 返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800296/

相关文章:

c - 我是否正确理解 C 中的按值传递和按引用传递?

JavaScript - 为什么 Array.prototype.fill 在填充类似 "pointer"的对象时实际上填充了 'new Object()' 对象

全国 iOS 离线 map (OSM)

javascript - Google Maps Geocoding API 不正确的速率限制

ruby-on-rails - 每次我在 Rails 3 上遇到异常时都可以执行一个方法吗?

ruby-on-rails - 升级到 Rails 3.2.0 并使用 Devise & tlsmail gem for Google Apps 获取 SSLError?

c++ - 在c++中从文件向数据结构中的变量添加值

ruby - 通过忽略 cucumber 中的顺序断言两个 json 内容

where 查询中的 Ruby 格式 DateTime 参数

java - 以 LIFO 顺序将条目存储在 Java 映射中