flatMap or flatten
Luan Nico
luannico27+es-discuss at gmail.com
Fri May 19 19:44:35 UTC 2017
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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170519/6a97dbb4/attachment.html>
More information about the es-discuss
mailing list