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
My Bash Prompt customization
/in Tooling/by Génesis14:34 gengns@mycomputer Desktop$ ▮
Open a console in your HOME folder and type vim .bashrc, then copy the next line at the end of the file:
More info: customization and colors in Bash
Flattening arrays of objects
/in JavaScript/by GénesisStarting from the previous example we are going to flatten arrays of objects with 3 method:
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
Nesting arrays of objects
/in JavaScript/by GénesisArray without duplicate values
/in JavaScript/by GénesisHTML input with units
/in CSS3, HTML5/by Génesis