javascript - 找出文本中有多少个重复的字母
问题描述
我的目标是得到 3 的结果,因为在"aaBbCChr"
字母 a、b 和 c 中重复它们自己。我已经制作了这个功能,一切看起来都正确,但它不能正常工作。
function duplicateCount(text) {
let lettersArray = text.split("");
let duplicateResult = 0;
lettersArray.map(function(letter) {
let regexLetter = new RegExp(letter, "gi");
let matchesCount = text.match(regexLetter).length;
if (matchesCount > 1) {
duplicateResult + 1;
} else {};
});
return duplicateResult;
};
alert(duplicateCount("aaBbCChr"));
解决方案
这是对您的代码进行最小更改的版本。您需要在此处将字符串小写,以便不再计算大写字母中的相同字母。
function duplicateCount(text) {
let lettersArray = text.toLowerCase().split("");
let duplicateResult = 0;
let set = new Set();
lettersArray.map(function(letter) {
let regexLetter = new RegExp(letter, "gi");
let matchesCount = text.match(regexLetter).length;
if (!set.has(letter) && matchesCount > 1) {
set.add(letter);
duplicateResult += 1;
} else {};
});
return duplicateResult;
};
alert(duplicateCount("aaBbCChr"));
推荐阅读
- r - 从R中的列表中选择性消除
- maven - mvn test 不遵循dependsOnGroups 的测试顺序
- c# - 表单上不同面板的不同 AcceptButton
- python-3.x - 抓取我在解析时抓取的 URL
- python - 无法为张量占位符提供形状值
- delphi - 如何在 IDE 中将图形分配给 FMX TImage?
- javascript - 聚焦时禁用文本区域中突出显示的下划线
- html - 谷歌表格宏输入表单格式错误的 HTML 内容
- code-coverage - Jacoco 的 Arquillian 集成测试代码覆盖率问题
- kotlin - 如何禁用 TornadoFx 表视图中列的大小调整?