# JavaScript: Find the most frequent character in a string

## JavaScript String: Exercise-58 with Solution

Write a JavaScript program to find the most frequent character in a given string.
Test Data:
("civic") -> "c"
("HellloL223LLL") -> "L"
(12321) -> "It must be a string."

Sample Solution:

JavaScript Code:

``````// Define a function named 'test' with a single parameter 'str'
const test = (str) => {
// Check if the input string is empty
if (str.length === 0)
{
// Return a message if the input string is empty
return 'String should not be empty!'
}
// Check if the input parameter 'str' is not a string
if (typeof str !== 'string')
{
// Return a message if the input is not a string
return 'It must be a string.'
}
// Create a Map to store the occurrences of each character in the string
const occurrence_Map = new Map()

// Iterate through each character in the string
for (const char of str)
{
// Increment the occurrence count of the current character in the Map, or set it to 1 if it doesn't exist
occurrence_Map.set(char, occurrence_Map.get(char) + 1 || 1)
}

// Find the character with the maximum occurrence count in the occurrence Map
let max_char = { char: '', occur: -Infinity }

for (const [char, occur] of occurrence_Map) {
// Update max_char if the occurrence of the current character is greater than the current maximum occurrence
if (occur > max_char.occur) {
max_char = { char,occur }
}
}

// Return the character with the maximum occurrence count
return max_char.char
}
// Test the 'test' function with different input strings and output the result
console.log(test("civic"))          // 'c'
console.log(test("HellloL223LLL"))  // 'L'
console.log(test(12321))            // It must be a string.
```
```

Output:

```a
c
L
It must be a string.
```

Explanation:

In the exercise above,

• The function "test()" is defined using arrow function syntax, taking a single parameter named 'str'.
• It first checks if the input string is empty. If it is, the function returns a message indicating that the string should not be empty.
• Next, it checks if the input parameter 'str' is not a string using the 'typeof' operator. If it's not a string, the function returns a message indicating it must be a string.
• If the input is a non-empty string, the function counts the occurrences of each character in the string using a 'Map' data structure. It iterates through each character in the string and updates the occurrence count in the Map.
• After counting the occurrences of each character, the function finds the character with the maximum occurrence count in the 'Map' by iterating through its entries.
• Finally, the function returns the character with the maximum occurrence count.

Flowchart:

Live Demo:

See the Pen javascript-string-exercise-58 by w3resource (@w3resource) on CodePen.

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.

﻿