JavaScript Program to Find Index of First Occurrence of Target Element in Sorted Array
Last Updated :
04 Sep, 2023
In this article, we will see the JavaScript program to get the first occurrence of a number in a sorted array. We have the following methods to get the first occurrence of a given number in the sorted array.
Methods to Find the Index of the First Occurrence of the element in the sorted array
- Using Linear Search (Brute Force method)
- Using Binary Search
- Using array.indexOf() Method
- Using array.findIndex() Method
Method 1: Using Linear Search
Linear search is a type of brute force method that works on linear traversal of the array. It searches the target in O(N) time. It works whether the array is sorted or not.
The program will run till the target is not found and will stop when the first occurrence is matched.
Example: In this example. we will use linear search to get the first index of target element.
Javascript
arr = [1, 2, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9];
target = 5;
for (let i = 0; i < arr.length; ++i) {
if (arr[i] === target) {
console.log(
"First index of " + target + " is: " + i
);
return ;
}
}
console.log(target + " is not present in the given array" );
|
Output
First index of 5 is: 4
Method 2: Using Binary Search
In this method, we will use Binary search to get the first occurance of target element. Binary search is an optimized technique which give output in O(log N) time. It works only for the sorted data. Using binary search if target element is found we will try to search the first occurrence in the left half again and provide the reuired output.
Example: In this example, we will use binary search to get the desired output.
Javascript
const arr = [1, 2, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9];
const target = 5;
let left = 0;
let right = arr.length - 1;
let outputIndex = -1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (target === arr[mid]) {
outputIndex = mid;
right = mid - 1;
}
else if (target < arr[mid]) {
right = mid - 1;
}
else
left = mid + 1;
}
if (outputIndex === -1)
console.log(target + " is not present in the given" );
else {
console.log(
"First index of " + target + " is: " + outputIndex
);
}
|
Output
First index of 5 is: 4
In this approach, we will use array.indexOf() method. The JavaScript Array indexOf() Method is used to find the index of the first occurrence of the search element provided as the argument to the method. This method always compares the search element to the element present in the array using strict equality. Therefore, when the search element is not found then it returns -1 because NaN values are never compared as equal.
Syntax:
array.indexOf(element, start)
Example: In this example, we will use arr.indexOf() method to find the target element.
Javascript
const arr = [1, 2, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9];
const target = 0;
const outputIndex = arr.indexOf(target);
if (outputIndex === -1)
console.log(target + " is not present in the given" );
else {
console.log(
"First index of " + target + " is: " + outputIndex
);
}
|
Output
0 is not present in the given
In this approach, we will use Array.findIndex() method. The Javascript Array.findIndex() method is used to return the first index of the element in a given array that satisfies the provided testing function (passed in by the user while calling). Otherwise, if no data is found then the value of -1 is returned.
Syntax:
array.findIndex(function(currentValue, index, arr), thisValue)
Example: In this example, we will use arr.findIndex() method with a callback function as shown in the example to get desired output.
Javascript
const arr = [1, 2, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 9];
const target = 8;
const outputIndex = arr.findIndex((e) => e === target);
if (outputIndex === -1)
console.log(target + " is not present in the given" );
else {
console.log(
"First index of " + target + " is: " + outputIndex
);
}
|
Output
First index of 8 is: 10
Share your thoughts in the comments
Please Login to comment...