JSFiddle - React, Tailwind, and code Playground
by Torwan
HTML
<ul class="categories">
<li data-category="category-1">Category 1</li>
<li data-category="category-1">Category 1</li>
<li data-category="category-1">Category 1</li>
<li data-category="category-1">Category 1</li>
<li data-category="category-1">Category 1</li>
<li data-category="category-2">Category 2</li>
<li data-category="category-2">Category 2</li>
<li data-category="category-2">Category 2</li>
<li data-category="category-3">Category 3</li>
<li>Category 4</li>
</ul>
<div id="result"></div>
JavaScript
var categories = {},
category;
$('.categories li[data-category]').each(function(i, el){
category = $(el).data('category');
if (categories.hasOwnProperty(category)) {
categories[category] += 1;
}
else {
categories[category] = 1;
}
});
// print results
$('#result').append('<hr>');
for(var key in categories){
$('#result').append(key + ' (' + categories[key] + ')<br>');
}