I have an array of items that contains several properties. One of the properties is an array of tags. What is the best way of getting all the tags used in those items and or
You can do this simply using a reduce operation. For example
var items = [{
itemName: 'item1',
tags: [
{id: 'tag1', name: 'Tag 1'},
{id: 'tag2', name: 'Tag 2'}
]
}, {
itemName: 'item2',
tags: [
{id: 'tag1', name: 'Tag 1'},
{id: 'tag3', name: 'Tag 3'}
]
}];
var tags = items.reduce((tags, item) => {
item.tags.forEach(tag => {
tags[tag.id] = tags[tag.id] || 0;
tags[tag.id]++;
});
return tags;
}, {});
document.write('' + JSON.stringify(tags, null, ' ') + '
');