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.
These tricks are part of the Dev Digest Newsletter.