computed: {
groupedPosts() {
return this.posts.reduce((acc, n) => {
(acc[n.category] = acc[n.category] || []).push(n);
return acc;
}, {});
},
},
UPD. Чего на самом деле хотел автор вопроса, вынесено из комментариев:
При нажатии на название категории хочу выводить посты и соответствующего массива.
Добавляем ещё одно вычисляемое свойство - массив категорий:
categories() {
return Object.keys(this.groupedPosts);
},
И обычное свойство - выбранная категория:
data: () => ({
activeCategory: null,
...
На основе массива категорий создаём кнопки, по нажатию на которые будет производиться выбор категории:
<button
v-for="n in categories"
v-text="n"
:class="{ active: n === activeCategory }"
@click="activeCategory = n"
></button>
Если категория выбрана - показываем соответствующие посты:
<div v-if="activeCategory">
<div v-for="n in groupedPosts[activeCategory]" class="post">
...
https://jsfiddle.net/yxf50qg2/