Задать вопрос
NooBiToo
@NooBiToo

Как взять первые 5 элементов в каждой категории?

<template v-for="article in articles">
          <article
            v-if="article.category.name == data.name"
            :key="article.id"
            class="article-thumb"
          >

Есть такой код, тут я раскидываю артиклы по категориям, как можно остановить вывод статей если в категории уже 5 шт, я бы мог написать что то вроде v-for="article in articles.slice(0, 5)", но категорий то больше чем 1, да и точно узнать никак не получится, так как разное количество статей в категориях
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
ReaverJS
@ReaverJS
Что то вроде:
StackOverflow
let articlesGroups = articles.reduce((articles, item) => {
  let article = (articles[item.category] || []);
  article.push(item);
  articles[item.category] = article;
  return articles;
}, {});

Дальше уже обходите articlesGroups - 2-я циклами. Внешний - обходит группы, внутренний - статьи. Во внутреннем как раз ставите ограничение на 5 статей.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы