有没有办法在JavaScript中返回字符串中字符的频率?

时间:2020-04-06 13:27:35

标签: javascript arrays

例如 count(“好”,“ o”) 结果:2

我并不是想让它变快,我只需要简单易用的东西。

1 个答案:

答案 0 :(得分:0)

您可以使用match查找字符串中某个字符的出现并创建匹配项的数组。使用.length会告诉您有多少。 'g'中的RegExp标志用于匹配所有事件,而不仅是第一个。

function count(str, find) {
    return (str.match(RegExp(find,'g')) || []).length
}

count("Good", "o");

如果您要查找的字符是特殊的RegExp字符,例如RegExp.|,则上述+解决方案不起作用等

以下是不使用RegExp(也可能更快)的替代解决方案:

function count(str, find) {
    return (str.split(find)).length - 1;
}

count("Good", "o");

此函数在每次出现字符时将字符串拆分为一个数组。 (例如,Good变成['G','','d'])。此数组的大小始终比出现次数大一,因为它包括两端。因此,您可以获得此数组的长度并减去1。

相关问题