WeAreDevelopers logo

Quick tricks - use flatMap() to extract nested data

If you have a dataset and you want to extract only a part of the data, you can use flatMap() to get any property - even nested ones. You can then use Set() to make the result only have unique items and even sort it. No need to write a loop and compare.

To work with the videos of the WeAreDeveloper World Congress we created a massive dataset of all the AI generated metadata 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"
}

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);

You can sort them alphabetically with sort():

data.flatMap(d => d.tags).sort();

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

new Set(data.flatMap(d => d.tags).sort());

You can try this in this codepen.

Show all Quick Tricks.

These tricks are part of the Dev Digest Newsletter.

Not signed up for WeAreDevelopers Dev Digest yet?