Table of Contents
Javascript Program to Count Unique Elements in an array
Problem Statement: In this program, we will be learning to count unique elements in an array using javascript. Let us take a simple example where we have an array with a lot of repetitive elements or numbers and you need to just tell the user the count of unique numbers by just creating a countUnique function in Javascript.
For reference, we have given an example below with output so that you can understand the problem statement properly.
Examples
Example 1: Input: array[] = {1,2,2,3,4,4,5,6,7,8,8} Output: 8 Explanation: By seeing the array it is clearly visible that 2,4 and 8 are repeated 2 times each. So in total the unique elements in the array stand out to be 8 Example 2: Input: array[] = {1,2,2,3,3,4,4,5,5,8,8} Output: 6 Explanation: By seeing the array it is clearly visible that 2,3,4,5 and 8 are repeated 2 times each. So in total the unique elements in the array stand out to be 6
Javascript Code
function countUnique(array){
if(array.length>0){
let i=0;
for(let j=1;j<array.length;j++){
if(array[i]!=array[j]){
i++;
array[i] = array[j];
}
}
return i+1;
}
else{
throw new Error("Array is Empty");
}
}
const result = uniqueCount([1,2,2,3,3,4,4,5,5,8,8])
console.log(result)
In the above code, we have created two variables i and j. And i is pointing to the first element of the array and j is pointing to the second element of the array when the program starts. Other than that we are also checking whether the array is empty or not also at the start of the program. If the value of i and j matches then we are just incrementing the value of j by 1.
If they don’t then we are just incrementing the value of i by 1 and the value of j with i (i.e done by using the following code array[i]=array[j]). If the array is empty then we are just throwing an error and if it is not then we are counting the unique elements in the array for which the logic is already described above. At last we are just returning the last value of i + 1 which will generally give you the no of unique elements in the array.
Note : The array should always be in a sorted order to get the desired output easily. If it is not then we should sort the array first.
Output:
8 Time Complexity : O(n)