Pager/Paging view logic

Three parameters are given: - Current page - Total pages - Total # of links to display

HTML

<ul id="pager"></ul>

JavaScript

var render = function(total, current, limit) {
    if (total < current || total <= 0 || limit <= 0) {
        return;
    }
    
    var pager = [],       // list of page links
        index = current;  // find the index of current page link
    
    // curent page link should be in there right?
    pager.push(index);
    
    // create a deviation off the current index
    // and add if they satisfy the limit condition
    for (var dev = 1; pager.length < limit; dev++) {
        var left = index - dev,
            right = index + dev;
        
        if (left > 0 && pager.length < limit) {
            pager.push(left);
        }
        
        if (right <= total && pager.length < limit) {
            pager.push(right);
        }
        
        if (dev >= total) {
            break;
        }
    }
    
    return pager.sort(function(a, b) { return a >b; });
};

// test
var totalPages = 10;
for (var current = 1; current <= totalPages; current++) {
    console.log(current, render(totalPages, current, 5));
}