Javascript 计算字符串中每个字符的出现时间

Javascript 计算字符串中每个字符的出现时间,javascript,loops,Javascript,Loops,我有这样一个字符串: 苹果,苹果,桔子,香蕉,草莓,草莓,草莓。我想计算每个字符的出现次数,例如香蕉1苹果2和草莓3。我该怎么做 我能找到的最接近的是这样的东西,我不知道如何适应我的需要: function countOcurrences(str, value){ var regExp = new RegExp(value, "gi"); return str.match(regExp) ? str.match(regExp).length : 0; } 下面是通过使用数组

我有这样一个字符串: 苹果,苹果,桔子,香蕉,草莓,草莓,草莓。我想计算每个字符的出现次数,例如香蕉1苹果2和草莓3。我该怎么做

我能找到的最接近的是这样的东西,我不知道如何适应我的需要:

function countOcurrences(str,   value){
 var regExp = new RegExp(value,     "gi");
return str.match(regExp) ?  str.match(regExp).length : 0;  
}

下面是通过使用数组实现这一点的最简单方法。。没有任何表情或东西。代码相当简单,并带有注释:

var str = "apple,apple,orange,banana,strawberry,strawberry,strawberry";

var arr = str.split(',');  //getting the array of all fruits

var counts = {};  //this array will contain count of each element at it's specific position, counts['apples']
arr.forEach(function(x) { counts[x] = (counts[x] || 0)+1; }); //checking and addition logic.. e.g. counts['apples']+1

alert("Apples: " + counts['apple']);
alert("Oranges: " + counts['orange']);
alert("Banana: " + counts['banana']);
alert("Strawberry: " + counts['strawberry']);
你可以试试

var wordCounts = str.split(",").reduce(function(result, word){
 result[word] = (result[word] || 0) + 1;
 return result;
}, {});
字数将是一个散列{apple:2,orange:1,…}

你可以按你喜欢的格式打印

参见演示

您也可以使用拆分:

function getCount(str,d) {
    return str.split(d).length - 1;
}
getCount("fat math cat", "at"); // return 3

每个词的出现。。不是character你可以从字符串创建一个数组并使用这样的东西为什么有java标记?谢谢大家的帮助它正在做我需要的事情,快速跟进问题如果我想更改并指向它以查看文件中的内容并计算出现次数,而不是在var str=中指定这将如何工作?如果有帮助,您可以对答案进行投票。。您首先必须读取字符串中的文件内容,然后按照以下步骤操作。。你不能不先看文件就这么做。我一直投票支持答案,但由于某种原因它不会保存,不知道它现在是否保存了…好的,我会调查的,谢谢