在JavaScript中有没有方法返回字符串中字符的频率?
e、 g 计数(“好”、“o”) 结果:2在JavaScript中有没有方法返回字符串中字符的频率?,javascript,arrays,Javascript,Arrays,e、 g 计数(“好”、“o”) 结果:2 我不希望它太快,我只需要一些简单有效的东西。您可以使用match查找字符串中出现的字符,并创建一个匹配数组。使用.length将告诉您有多少个。RegExp中的'g'标志用于匹配所有发生的事件,而不仅仅是第一次 function count(str, find) { return (str.match(RegExp(find,'g')) || []).length } count("Good", "o"); 如果要查找的字符是特殊的RegE
我不希望它太快,我只需要一些简单有效的东西。您可以使用
match
查找字符串中出现的字符,并创建一个匹配数组。使用.length
将告诉您有多少个。RegExp
中的'g'
标志用于匹配所有发生的事件,而不仅仅是第一次
function count(str, find) {
return (str.match(RegExp(find,'g')) || []).length
}
count("Good", "o");
如果要查找的字符是特殊的RegExp
字符,如
,|
,+
等,则上面的RegExp
解决方案不起作用
以下是不使用RegExp
的替代解决方案(也可能更快):
此函数用于在每次出现字符时将字符串拆分为数组。(例如,
Good
变为['G','','d']
)。此数组的大小始终比出现的次数多一个,因为它包含两端。因此,您可以获得此数组的长度并减去1。String.prototype.match
?尝试查找点数。它不返回零。
function count(str, find) {
return (str.split(find)).length - 1;
}
count("Good", "o");