<h1>Binary search algorithm in JavaScript</h1>

<p>Please check javascript code.</p>
/***************************************
 * search
 ***************************************/
var binarySearch = function(list, target){
  var middleIndex,
      middle,
      result = 'nothing';
  
  while(list.length > 0){

    var middleIndex = Math.floor(list.length/2);
    var middle = list[middleIndex];
  
    if(middle === target){
      result = target;
      break;
    }

    if(middle > target){
      list = list.slice(0,middleIndex);
    }else{
      list = list.slice(middleIndex+1);
    }

  }
  return result;
  
};
/***************************************
 * search using closure
 ***************************************/
//var binarySearch = function(list, target){
//  var result;
//  
//  (function search(list, target){
//    var middleIndex = Math.floor(list.length/2);
//    var middle = list[middleIndex];
//  
//    if(middle === target){
//      result = target;
//      return;
//    }
//
//    if(middle > target){
//      list = list.slice(0,middleIndex);
//    }else{
//      list = list.slice(middleIndex+1);
//    }
//    
//    if(list.length === 0){
//      result = 'nothing';
//    }else{
//      search(list, target); 
//    }
//    
//  })(list, target);
//  
//  return result;
//};

/***************************************
 * main
 ***************************************/
var list = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],
  target = 15,
  result = binarySearch(list, target);

console.log(list);
console.log('index of tartget(' + target + ') is ' + result);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.