DEV Community

Cover image for Quick tip: using flatMap() to extract data from a huge set without having to write a loop
Christian Heilmann
Christian Heilmann

Posted on • Edited on • Originally published at christianheilmann.com

Quick tip: using flatMap() to extract data from a huge set without having to write a loop

I just created a massive dataset of all the AI generated metadata of the videos of the WeAreDeveloper World Congress" and I wanted to extract only the tags.

The dataset is a huge array with each item containing a description, generated title, an array of tags, the original and their title, like this:

{ "description": "The talk begins with an introduction to Twilio…", "generatedtitle: "Enhancing Developer Experience: Strategies ", "tags": ["Twilio", "DeveloperExperience", "CognitiveJourney"], "title": "Diving into Developer Experience" } 
Enter fullscreen mode Exit fullscreen mode

What I wanted was an alphabetical lost of all the tags in the whole dataset, and this is a one-liner if you use flatMap():

data.flatMap(d => d.tags); 
Enter fullscreen mode Exit fullscreen mode

You can sort them alphabetically with sort():

data.flatMap(d => d.tags).sort(); 
Enter fullscreen mode Exit fullscreen mode

And you can de-dupe the data and only get unique tags when you use Set():

new Set(data.flatMap(d => d.tags).sort()); 
Enter fullscreen mode Exit fullscreen mode

You can try this in this codepen.

Top comments (2)

Collapse
 
ahmetcetin profile image
Ahmet Cetin

Who will tell Christian that flatMap is actually a loop? :)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.