Если делать ровно то, что спрошено:
for (let i = 0; i < 6; i++) {
const count = res.data.filter(n => +n.categoryid === i).length;
$(`#category_count_${i}`).html(`(${count})`);
}
Или, вместо многократной фильтрации можно обойтись одним проходом по данным.
Вариант раз - выполняем группировку:
const grouped = res.data.reduce((acc, n) => {
(acc[n.categoryid] = acc[n.categoryid] || []).push(n);
return acc;
}, {});
$('[id^="category_count_"]').text(function() {
return `(${(grouped[/\d*$/.exec(this.id)[0]] || []).length})`;
});
Вариант два - считаем кого сколько:
const counted = res.data.reduce((acc, n) => (
acc[n.categoryid] = -~acc[n.categoryid],
acc
), {});
document.querySelectorAll('[id^="category_count_"]').forEach(n => {
n.textContent = `(${counted[n.id.split('_').pop()] || 0})`;
});