我有一个这样的字符串: (苹果,苹果,橘子,香蕉,草莓,草莓,草莓)。我想计算每个字符的出现次数,例如香蕉(1)苹果(2)和草莓(3)。我怎么能这样做?
我能找到的最接近的是,我不知道如何适应我的需求:
function countOcurrences(str, value){
var regExp = new RegExp(value, "gi");
return str.match(regExp) ? str.match(regExp).length : 0;
}
答案 0 :(得分: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']);
<强> See the DEMO here 强>
答案 1 :(得分:0)
你可以尝试
var wordCounts = str.split(",").reduce(function(result, word){
result[word] = (result[word] || 0) + 1;
return result;
}, {});
wordCounts
将是哈希{"apple":2, "orange":1, ...}
您可以将其打印为您喜欢的格式。
答案 2 :(得分:0)
您也可以使用split
:
function getCount(str,d) {
return str.split(d).length - 1;
}
getCount("fat math cat", "at"); // return 3