Skip to content

Instantly share code, notes, and snippets.

@barseghyanartur
Created July 2, 2015 16:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save barseghyanartur/d1fe32861ea6d9da0f89 to your computer and use it in GitHub Desktop.
Save barseghyanartur/d1fe32861ea6d9da0f89 to your computer and use it in GitHub Desktop.
Generate x number of pages to display out of the total number of pages and current page number.
/**
* Generate x number of pages to display out of the total number of pages and
* current page number.
*
* @param {Integer} totalPagesNumber: Total number of pages.
* @param {Integer} displayPagesNumber: Number of pages to display.
* @param {Integer} currentPageNumber: Current page number.
* @return {Array}:
*/
function getPagesRange(totalPagesNumber, displayPagesNumber, currentPageNumber) {
var lowerLimit = upperLimit = Math.min(currentPageNumber, totalPagesNumber);
for (var i = 1; i < displayPagesNumber && i < totalPagesNumber;) {
if (lowerLimit > 1 ) { lowerLimit--; i++; }
if (i < displayPagesNumber && upperLimit < totalPagesNumber) { upperLimit++; i++; }
}
var range = [];
for (var i = lowerLimit; i <= upperLimit; i++) {
range.push(i);
}
return range;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment