I’m trying to create a pagination function with JavaScript, to implement something like what is in the Figma design in that picture. I have gotten to the point where I get the first 1 to 5 list from the first Array.slice method.
Now I want to update the slice first and last inputs when I click on Next so that it can update from (1 to 5) to (6 to 10). The value changes but it doesn’t affect the array I output in the list. How can I solve this problem please?
// For Pagination
let currentPage = 1;
let postsPerPage = 10;
let lastPage = 5;
let indexOfLastPost = currentPage * lastPage;
let indexOfFirstPost = indexOfLastPost - lastPage;
let pageNumberSelector = document.getElementById("pageNumbers");
let pageNumbers = [];
let currentPageNumbers = [];
for (let i = 1; i <= Math.ceil(150 / postsPerPage); i++) {
pageNumbers.push(i);
}
const getCurrentPageNumbers = (firstSliceValue = 0, lastSliceValue = 5) => {
currentPageNumbers.push(
pageNumbers.slice(firstSliceValue, lastSliceValue)
);
};
getCurrentPageNumbers();
pageNumberSelector.innerHTML = `<p id='prevPageBtn'>Previous</p>
<ul>
<li>
<a href='/'>${currentPageNumbers}</a>
</li>
</ul>
<p id='nextPageBtn'>Next</p>`;
const nextPageBtn = document.getElementById("nextPageBtn");
nextPageBtn.addEventListener("click", () => {
indexOfLastPost = indexOfLastPost + 5;
indexOfFirstPost = indexOfFirstPost + 5;
getCurrentPageNumbers(indexOfFirstPost, indexOfLastPost);
console.log(indexOfFirstPost, indexOfLastPost);
});
[Pagination design](https://i.stack.imgur.com/w3E0A.png)