Circle Image

Wen Lin Gang

Ruby & Go Full-stack programmer @ Lifelong learner.

Ruby 枚举对象 flat_map

返回一个新数组,其中包含对 enum 中的每个元素执行一次 block 操作的结果,如果没有给出 block,则返回一个枚举器。

Ruby 2.7.0 Enumerable#flat_map

语法

flat_map { |obj| block }  array
flat_map  an_enumerator

示例

对一维数组和二维数组使用都能在迭代器中获得每一个元素

(1..4).flat_map { |e| [e, -e] } #=> [1, -1, 2, -2, 3, -3, 4, -4]
[[1, 2], [3, 4]].flat_map { |e| e + [100] } #=> [1, 2, 100, 3, 4, 100]
[[1, 2], [3, 4]].flat_map { |e| e } #=> [1, 2, 3, 4]
[1, 2, 3, 4].flat_map { |e| e } #=> [1, 2, 3, 4]
(1..4).map { |e| [e, -e] }.flatten #=> [1, -1, 2, -2, 3, -3, 4, -4]
(1..4).map { |e| [e, -e] } #=> [[1, -1], [2, -2], [3, -3], [4, -4]]
(1..4).flat_map { |e| [e, -e] } #=> [1, -1, 2, -2, 3, -3, 4, -4]