javascript - 有没有办法在 JavaScript 中返回字符串中字符的频率?
问题描述
例如 count("Good", "o") 结果:2
我不希望它快,我只需要简单且有效的东西。
解决方案
您可以使用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。
推荐阅读
- python - 如何修复基本的for循环?Python
- javascript - 将函数绑定到 Ajax 表单成功事件
- python - 如何在列表python中找到类似的项目
- visual-studio - Visual Studio Mac 突出显示代码中的警告
- java - Android如何使用改造传递模态类和参数的数组
- python - 检测列表中的元素是否相等,捕获非空列表
- python - PySpark:TypeError:+:'datetime.datetime'和'str'不支持的操作数类型
- docker - 如何在 localhost 中运行两个或多个应用程序
- node.js - mongoose Model.save() 在 NodeJS 中返回空数据
- javascript - 如何在 nativescript-vue 弹出窗口中使用 vue 组件?