felvieira
10/14/2019 - 6:56 PM

Paginar um Array de Objetos

  // Metodo para paginar array de objetos
  // ex: paginateArray(arr) ou
  // paginateArray(arr,2) para pegar a 2 pagina
  // paginateArray(arr,2,5) para pegar a 2 pagina e limitar 5 itens de retorno no array
  paginateArray = (items, page, per_page) => {
    page = page || 1;
    per_page = per_page || 10;
    const offset = (page - 1) * per_page;

    const paginatedItems = items.slice(offset).slice(0, per_page);
    const total_pages = Math.ceil(items.length / per_page);
    return {
      page,
      per_page,
      pre_page: page - 1 ? page - 1 : null,
      next_page: total_pages > page ? page + 1 : null,
      total: items.length,
      total_pages,
      data: paginatedItems,
    };
  };