@AndrewRusinas

Как создать массив с объектами из другого массива?

Во vue есть массив с объектами:
posts: [
    {
      title: 'Тестовый пост',
      content: 'lorem lorem',
      category: 'lifestyle'
    },
    {
      title: 'Тестовый пост',
      content: 'lorem lorem',
      category: 'lifestyle'
    },
    {
      title: 'Тестовый пост',
      content: 'lorem lorem',
      category: 'business'
    },
    {
      title: 'Тестовый пост',
      content: 'lorem lorem',
      category: 'travel'
    },
    {
      title: 'Тестовый пост',
      content: 'lorem lorem',
      category: 'travel'
    },
  ]
}
Нужно создать отдельный массив с постами каждой отдельной категории (travel, lifestyle, business). Как это лучше сделать?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
computed: {
  groupedPosts() {
    return this.posts.reduce((acc, n) => {
      (acc[n.category] = acc[n.category] || []).push(n);
      return acc;
    }, {});
  },
},

UPD. Чего на самом деле хотел автор вопроса, вынесено из комментариев:

При нажатии на название категории хочу выводить посты и соответствующего массива.

Делаете два computed свойства - массив категорий, и массив постов выбранной категории, как-то так.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы