JSFiddle - React, Tailwind, and code Playground
HTML
<div class="item" data-service_id="1" data-service_model="cover">Разный</div>
<div class="item" data-service_id="15" data-service_model="cover">Разный</div>
<div class="item" data-service_id="1" data-service_model="services">Разный</div>
<div class="item" data-service_id="10" data-service_model="services">Одинаковый</div>
<div class="item" data-service_id="10" data-service_model="services">Одинаковый</div>
<div class="item" data-service_id="5" data-service_model="service-Option">Разный</div>
<div class="item" data-service_id="8" data-service_model="service-Option">Одинаковый</div>
<div class="item" data-service_id="8" data-service_model="service-Option">Одинаковый</div>
JavaScript
Array.prototype.unique = function() {
return this.reduce(function(p, c) {
if (p.indexOf(c) === -1) p.push(c);
return p;
}, []);
};
var result = [];
var models = $('.item').toArray().map( a => $(a).data('service_model') ).unique();
//console.log(models);
models.map( function(m) {
var ids = $('.item[data-service_model='+m+']').toArray().map( a => $(a).data('service_id') ).unique();
//console.log( m+' '+ids );
ids.map( function( i ) {
result.push({
model: m,
id: i,
count: $('.item[data-service_id='+i+']').length
});
});
});
alert(result.map(JSON.stringify).join('\n'));