Flatten your arrays!
The flat_map
defined in Enumerable
does 2 things:
- It transforms data like
map
. - « flattens » the result of each transformation by one level if it is an array.
Just as map
has an alias collect
, flat_map
has an alias collect_concat
!
flatten
is defined for Array
and Hash
and does just one thing: it « flattens » arrays, but the depth is configurable. For Array
, the default depth is illimited, for Hash
, it’s 1! A negative value indicates illimited depth.
The use of one or the other will depend on the context. However, the common case concerns 1 level, and then flat_map
is on average 2 times more efficient than map { ... }.flatten
.
Links to Ruby documentation for flat_map
, Hash#flatten
and Array#flatten
.