1. List vị trí hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
pagination = (index, length, delta = 2) => { let array = [], left = index - delta - 1, right = index + delta + 1; for (let i = 1; i <= length; i++) { if ( i == 1 || i == length || (i > left && i < right) || (i == 2 && left == 2) || (i == length - 1 && right == length - 1) ) { array.push(i); } } if (left > 2) { array.splice(1, 0, '...'); } if (right < length - 1) { array.splice(-1, 0, '...'); } return array; }; |
-- Test thử
1 2 |
for (let i = 1, l = 20; i <= l; i++) console.log(`Selected page ${i}:`, pagination(i, l)); |