Classe de paginação com POO

Sua tarefa é criar uma class para lidar com conteúdo paginado em um site. A paginação é usada para dividir listas longas de conteúdo em uma série de páginas.

Example

A class de paginação aceitará 2 parâmetros:

  1. items (padrão: []): Um array de conteúdos para paginar.

  2. pageSize (padrão: 10): A quantidade de itens a serem exibidos em cada página.

Por exemplo, poderíamos inicializar nossa paginação desta forma:

const alphabetArray = "abcdefghijklmnopqrstuvwxyz".split("");

const p = new Pagination(alphabetArray, 4);

Em seguida, use o método getVisibleItems para exibir o conteúdo do array paginado.

console.log(p.getVisibleItems()); // ["a", "b", "c", "d"]

Você deverá implementar vários métodos para percorrer as páginas, como:

  • prevPage
  • nextPage
  • firstPage
  • lastPage
  • goToPage

Veja a continuação do exemplo acima usando nextPage e lastPage:

p.nextPage();

console.log(p.getVisibleItems());
// ["e", "f", "g", "h"]

p.lastPage();

console.log(p.getVisibleItems());
// ["y", "z"]

Observações

  • Você não precisa usar uma class do ES6 se não quiser.
  • O segundo argumento (pageSize) pode ser um float; nesse caso, basta convertê-lo para um int (isso também se aplica ao método goToPage).
  • Os métodos usados para mudar de página devem permitir encadeamento, para que você possa chamá-los um após o outro assim: p.nextPage().nextPage();
  • Remova os comentários que forneci antes de publicar sua solução.