JavaScript Count characters case insensitive

Counting characters in a string is a common task in programming, especially when analyzing text or creating applications that handle user input. Counting characters in a string without worrying about uppercase or lowercase letters is a common task in text processing and data analysis. JavaScript offers different methods to easily count how many times each character appears, regardless of case.

Understanding Case Insensitive

Case insensitivity in programming means that a system treats uppercase and lowercase letters as the same. For example, "Hello" and "hello" would be treated as equal in a case-insensitive situation.

Case-Insensitive Character Counting

You can follow the below mentioned methods to count characters case insensitively in JavaScript.

Using For...of Loop

To count characters case insensitively using a loop, follow these steps:

  • Convert the string to lowercase (or uppercase) to make the comparison case insensitive
  • Iterate through the characters and store their counts in an object
  • Display the result

Example

Here is the example code for counting case insensitive characters:

const string = 'ASASSSASAsaasaBBBASvcdNNSASASxxzccxcv';

const countFrequency = str => {
    const frequency = {};
    for (char of str.toLowerCase()) {
        if (!frequency[char]) {
            frequency[char] = 1;
        } else {
            frequency[char]++;
        }
    }
    return frequency;
};

console.log(countFrequency(string));
{ a: 10, s: 11, b: 3, v: 2, c: 4, d: 1, n: 2, x: 3, z: 1 }

The code defines a string and a function called countFrequency that counts how many times each character appears in that string, ignoring case. It converts the string to lowercase, initializes an empty object to store character counts, and loops through each character to increment counts.

Using Map() Method

The Map object provides another way to count characters with additional filtering capabilities:

Example

function countCharactersUsingMap(str) {
    str = str.toLowerCase();
    let charMap = new Map();
    
    for (let char of str) {
        if (char.match(/[a-z0-9]/)) {
            charMap.set(char, (charMap.get(char) || 0) + 1);
        }
    }
    
    return Object.fromEntries(charMap);
}

// Example usage
let str = "JavaScript is Awesome!";
console.log(countCharactersUsingMap(str));
{
  j: 1,
  a: 3,
  v: 1,
  s: 3,
  c: 1,
  r: 1,
  i: 2,
  p: 1,
  t: 1,
  w: 1,
  e: 2,
  o: 1,
  m: 1
}

This approach uses a Map to store character counts and includes regex filtering to count only alphanumeric characters. The Object.fromEntries() method converts the Map back to a plain object for easier display.

Comparison

Method Memory Usage Special Features Best For
Object with Loop Lower Counts all characters Simple character counting
Map Method Higher Built-in filtering, ordered keys Complex filtering requirements

Conclusion

Counting characters case insensitively in JavaScript is straightforward using toLowerCase() and iteration. Both object-based and Map-based approaches work well, with Maps offering more advanced features for complex filtering scenarios.

Updated on: 2026-03-15T23:18:59+05:30

735 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements