Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gregorynicholas/1133030 to your computer and use it in GitHub Desktop.
Save gregorynicholas/1133030 to your computer and use it in GitHub Desktop.
basic javascript sortes array binary search
var pages = [];
var page_height= 100;
var page_total= 2;
for (var i = 0; i < page_total; i++) {
var page = {min: i * page_height, max: i * page_height + page_height, page_no: i };
pages[i] = page;
}
/*for loop builds something like this: var pages = [{
min: 0,
max: 100,
page_no: 0
},
{
min: 101,
max: 200,
page_no: 1
}];*/
function getPageNoByYPos(ypos, start, end) {
var start = start || 0;
var end = end || pages.length;
var mid = end / 2;
if (ypos < pages[mid].min) {
return getPageNoByYPos(ypos, start, mid);
} else if (ypos > pages[mid].max) {
return getPageNoByYPos(ypos, mid, end);
} else {
return pages[mid];
}
}
var page = getPageNoByYPos(150); // get's page two
var my_page_no = page.page_no;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment