0

文字列内の各文字の出現をカウントするJavaScriptコードを作成するにはどうすればよいですか?

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 
4

4 に答える 4

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

または、ヒップになってmap/reduceを使用します。

var counts = yourstring.split('').reduce(function(dst, c) {
  dst[c] = (dst[c] || 0) + 1;
  return dst;
}, {});
于 2013-02-10T13:15:20.457 に答える
1

このコードは機能するはずです:

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]); 
}
于 2013-02-10T13:15:04.540 に答える
0
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);
于 2013-02-10T13:15:28.837 に答える
0

以下は、古くて単純なforループを使用した私のソリューションです。このアプローチは、初心者にとって可能な限り簡単な方法で質問に答えます。このコードは、入力内のすべての文字を小文字に変換し、それらの出現回数をカウントします。このソリューションでは、特殊文字とスペースも有効な文字としてカウントします。

  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;
        }

countオブジェクトは、入力の文字を示します。

于 2021-04-08T16:27:33.810 に答える