# JavaScript: Search JavaScript arrays with a binary search

## JavaScript Function: Exercise-18 with Solution

Write a function for searching JavaScript arrays with binary searches.

Note : A binary search searches by splitting an array into smaller and smaller chunks until it finds the desired value.

Visual Presentation:

Sample Solution-1:

JavaScript Code:

``````// Define a function named array_binary Search that performs binary search on a sorted array
function array_binarySearch(narray, delement) {
// Calculate the middle position of the array
var mposition = Math.floor(narray.length / 2);

// Check if the middle element is equal to the desired element
if (narray[mposition] === delement){
return mposition;
}
// Check if the array has only one element and it is not equal to the desired element
else if (narray.length === 1)
{
// If true, return null as the element is not found
return null;
}
// Check if the middle element is less than the desired element
else if (narray[mposition] < delement) {
// Create a new array containing elements to the right of the middle position
var arr = narray.slice(mposition + 1);

// Recursively call array_binarySearch on the new array
var res = array_binarySearch(arr, delement);

// Check if the result is null
if (res === null)
{
// If true, return null
return null;
}
else {
// If false, return the adjusted index by adding mposition + 1 to the result
return mposition + 1 + res;
}
}
// If the middle element is greater than or equal to the desired element
else {
// Create a new array containing elements to the left of the middle position
var arr1 = narray.slice(0, mposition);

// Recursively call array_binarySearch on the new array
return array_binarySearch(arr1, delement);
}
}

// Create an example sorted array
var myArray = [1, 2, 3, 5, 6, 7, 10, 11, 14, 15, 17, 19, 20, 22, 23];

// Log the result of calling array_binarySearch with the input array and desired element to the console
console.log(array_binarySearch(myArray, 6));
```
```

Output:

```4
```

Flowchart:

Live Demo:

See the Pen JavaScript - Search JavaScript arrays with a binary search-function-ex- 18 by w3resource (@w3resource) on CodePen.

Sample Solution-2:

JavaScript Code:

``````// Binary search function for sorted arrays
function binarySearch(arr, target) {
let low = 0;
let high = arr.length - 1;

while (low <= high) {
// Calculate the middle index
const mid = Math.floor((low + high) / 2);

// Check if the middle element is the target
if (arr[mid] === target) {
return mid; // Element found, return its index
} else if (arr[mid] < target) {
low = mid + 1; // If target is greater, search the right half
} else {
high = mid - 1; // If target is smaller, search the left half
}
}

}

// Example usage:
const sortedArray = [1, 2, 3, 5, 6, 7, 10, 11, 14, 15, 17, 19, 20, 22, 23];
const targetElement = 6;
const resultIndex = binarySearch(sortedArray, targetElement);

// Log the result to the console
console.log(resultIndex);
```
```

Output:

```4
```

Flowchart:

Improve this sample solution and post your code through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿