Introduction
JavaScript is a powerful programming language that offers various built-in functions to simplify coding. However, sometimes understanding how logic works without using built-in functions is just as important. In this blog post, we will explore how to find the most frequent element in an array using JavaScript. First, we will solve it using JavaScript’s built-in functions. Then, we will achieve the same goal without functions.
Solution Using Built-in Functions
JavaScript provides many useful methods like reduce()
, sort()
, and map()
that help in solving complex problems easily. Below is a simple way to find the most frequent element in an array.
function mostFrequentElement(arr) { let frequencyMap = arr.reduce((acc, val) => { acc[val] = (acc[val] || 0) + 1; return acc; }, {}); return Object.keys(frequencyMap).reduce((a, b) => frequencyMap[a] > frequencyMap[b] ? a : b); } let numbers = [1, 3, 2, 3, 4, 3, 5, 2, 1, 3, 3, 4]; console.log(mostFrequentElement(numbers)); // Output: 3
Explanation
- First, the
reduce()
function is used to create a frequency map where each number is mapped to its count. - Then, we use
Object.keys()
andreduce()
again to find the key with the highest value. - Finally, we return the most frequent element.

Solution Without Using Built-in Functions
Now, let’s implement the same logic without using any built-in functions.
function mostFrequentElementWithoutFunctions(arr) { let frequencyMap = {}; let maxCount = 0; let mostFrequent = null; for (let i = 0; i < arr.length; i++) { let num = arr[i]; if (frequencyMap[num] === undefined) { frequencyMap[num] = 1; } else { frequencyMap[num]++; } if (frequencyMap[num] > maxCount) { maxCount = frequencyMap[num]; mostFrequent = num; } } return mostFrequent; } let numbers = [1, 3, 2, 3, 4, 3, 5, 2, 1, 3, 3, 4]; console.log(mostFrequentElementWithoutFunctions(numbers)); // Output: 3
Explanation
- A
frequencyMap
object stores occurrences of each number. - A loop iterates through the array to count occurrences manually.
- The
if
statement updates themostFrequent
variable whenever a number’s count exceedsmaxCount
.
Comparing Both Approaches
Feature | With Built-in Functions | Without Built-in Functions |
---|---|---|
Readability | High | Moderate |
Performance | Slightly slower | Faster for large datasets |
Complexity | Low | Medium |
Conclusion
Both methods effectively solve the problem, but using built-in functions makes the code more readable. However, understanding logic without built-in functions helps improve problem-solving skills. Whether you are a beginner or an advanced developer, mastering both approaches is beneficial.