Flattening arrays of objects
Starting from the previous example we are going to flatten arrays of objects with 3 method:
- map with join
- forEach with concat
- forEach with push
We are trying to do it in a functional way, clearer and shorter. The more (nested) elements you have, the better the map option will be versus forEach with concat. If we are looking for the fastest option, a classical for with push will be the best one as JapanFever said and the worst a forEach with concat.
Just launch these basic test I made in jsPerf and try yourself:
https://jsperf.com/map-with-join-vs-foreach-with-concat
https://jsperf.com/flattening-arrays-of-objects
The more (nested) elements you have, the more equal the forEach will be comparing with the classical for.
JavaScript engines performance are improving constantly and I hope to see a better way to flatten using map xD