flatMap or flatten
Jordan Harband
ljharb at gmail.com
Fri May 19 20:21:03 UTC 2017
See https://github.com/bterlson/proposal-flatMap
On Fri, May 19, 2017 at 12:54 PM, Frankie Bagnardi <f.bagnardi at gmail.com>
wrote:
> I often do the `.reduce((xs, ys) => xs.concat(ys))` and I feel the need to
> leave a comment explaining what it does.
>
> +1 to this proposal.
>
>
> On Fri, May 19, 2017 at 12:44 PM, Luan Nico <luannico27+es-discuss at gmail.
> com> wrote:
>
>> I always surprise myself finding out there's no native way to flat an
>> array. I know it's easy to implement, but to increase legibility I propose
>> creating one of two options (either suffice, I believe):
>>
>> - `flatMap` : regular map, but flattens the array afterwards
>> - `flatten` : just call on an array and get a new flattened array
>>
>> Some examples usages of both:
>>
>> With `flatMap`:
>> ```
>> const numbers = [12, 35];
>> const divisors = numbers.flatMap(factors);
>> ```
>>
>> With `flatten`:
>> ```
>> const numbers = [12, 35];
>> const divisors = numbers.map(factors).flatten();
>> ```
>>
>> Flattening an array is converting something like `[1, [2, 3], 4]` to `[1,
>> 2, 3, 4]`.
>> There is also need to choose whether it's deep or shallow.
>>
>> I suggest adding a `flatten` shallow method, as that would be useful in
>> all scenarios described.
>>
>> Example implementation:
>>
>> ```
>> Array.prototype.flatten = function () {
>> return [].concat.apply([], this);
>> };
>> ```
>>
>> What are your opinions about it?
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170519/6e407ebf/attachment.html>
More information about the es-discuss
mailing list