JSFiddle - React, Tailwind, and code Playground

by Alex Alex

JavaScript

function pagination(c, m) {
    var current = c,
        last = m,
        delta = 2,
        left = current - delta,
        right = current + delta + 1,
        range = [],
        added = false;

		range = [...Array(last+1).keys()].slice(1).map((i) => {
				if (i == 1 || i == last || i >= left && i < right) {
        		added = false;
            return i;
        } else if (!added) {
        		added = true;
          	return '...';        
        }
    }).filter((i) => i);
    
    return console.log(range);
}

for (let i = 1, l = 20; i <= l; i++) {
	pagination(i, l);
	console.log(`Selected page ${i}:`);
}