Method: Enumerable#flat_map

Defined in:
enum.c

#flat_map {|obj| ... } ⇒ Array #collect_concat {|obj| ... } ⇒ Array #flat_mapObject #collect_concatObject

Returns a new array with the concatenated results of running block once for every element in enum.

If no block is given, an enumerator is returned instead.

[1, 2, 3, 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]

Overloads:

  • #flat_map {|obj| ... } ⇒ Array

    Yields:

    • (obj)

    Returns:

  • #collect_concat {|obj| ... } ⇒ Array

    Yields:

    • (obj)

    Returns:



475
476
477
478
479
480
481
482
483
484
485
486
# File 'enum.c', line 475

static VALUE
enum_flat_map(VALUE obj)
{
    VALUE ary;

    RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_size);

    ary = rb_ary_new();
    rb_block_call(obj, id_each, 0, 0, flat_map_i, ary);

    return ary;
}