First of all, while browsing, I couldn’t find the most effective and short solution to find the most frequent element in an array but I only found a lot of long solutions with for loop however the best way is** not using nested for loop.** Because in Big O Notation, it’s a O(n2) complexity which means it is not effective.

The best way to find the most frequent element in an array is by using reduce function and creating a hashmap. And that’s the whole code you need:

function getMostFrequent(arr) {
   const hashmap = arr.reduce( (acc, val) => {
    acc[val] = (acc[val] || 0 ) + 1
    return acc
 },{})
return Object.keys(hashmap).reduce((a, b) => hashmap[a] > hashmap[b] ? a : b)
}

What I did was, creating a hashmap using reduce. If we have an array like [‘john’, ‘doe’, ’john’, ’bilge’], our hashmap will look like this:

Image for post

Because we create an object using acc in the first reduce function, notice the initial value of acc is {}.

Then we check for each value of the array: is this value already in acc?

If no, put a key-value pair in the object. ( first appearance of the element)

If yes, increment the value of it.

#programming #javascript #coding

Easiest Way to Find the Most Frequent Element in Array
1.30 GEEK