首页 > 解决方案 > 找出文本中有多少个重复的字母

问题描述

我的目标是得到 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"));

标签: javascript

解决方案


这是对您的代码进行最小更改的版本。您需要在此处将字符串小写,以便不再计算大写字母中的相同字母。

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"));


推荐阅读