Vikash
Vikash

Reputation: 459

Each Character occurrence in a string

How to write a javascript code that counts each character occurrence in a string ?

e.g 
String is : Hello World 

Output :  
count of H -> 1
count of e -> 1
count of l -> 3
count of o -> 2 
count of r -> 1
count of d -> 1 
count of W -> 1 

Upvotes: 2

Views: 4492

Answers (4)

Nasreen
Nasreen

Reputation: 1

Below is my solution with the old and simple for loop. This approach answers the question in the simplest possible way for beginners. This code will convert all the letters in the input to lower case and count their occurrence. In this solution, we also count the special characters and spaces as valid characters.

  function countChar(str) {
            var count = {};
            for (let i = 0; i < str.length; i++) {
                var ch = str[i].toLowerCase();
                if (count[ch] > 0) {
                    count[ch]++;
                } else {
                    count[ch] = 1;
                }
            }
            return count;
        }

The count object denotes the characters in the input.

Upvotes: 0

robertklep
robertklep

Reputation: 203329

var counts = {};
yourstring.split('').map(function(ch) {
  counts[ch] = (counts[ch] || 0) + 1;
});

Or be hip and use map/reduce:

var counts = yourstring.split('').reduce(function(dst, c) {
  dst[c] = (dst[c] || 0) + 1;
  return dst;
}, {});

Upvotes: 11

MDEV
MDEV

Reputation: 10838

var splitWord = "Hello World".split('');
var letters = {};
for(var i in splitWord)
{
    var letter = splitWord[i];
    if(letter == ' ') continue;
    if(typeof letters[letter] == 'undefined')
    {
        letters[letter] = 0;
    }
    letters[letter]++;
}
console.dir(letters);

Upvotes: 0

pwolaq
pwolaq

Reputation: 6381

this code should work:

var str = "Hello World";
var arr = str.split('');
var occ = {};
for(var i=0,c=arr.length;i<c;i++){
    if(occ[arr[i]]) occ[arr[i]]++;
    else occ[arr[i]] = 1;
}
for(var i in occ){
    alert('count of '+i+' -> '+occ[i]); 
}

Upvotes: 1

Related Questions