首页 > 解决方案 > 从传入的字符串中计算重复项

问题描述

所以我在 codewars 上遇到了这个问题,我必须在传入的字符串中找到相同的字母,并返回在该字符串中出现两次或更多次的字母。这是我的尝试,它抛出了一个错误:

function duplicateCount(text){
  text.split('')
  for(var i = 0, i < text.length, i++) {
    for(var j = 1, j < text.length + 1, j++)
      if(text[j] = text[i]) {
        return text[i]
      }
    else return
  }
  //...
}

我没有什么经验,所以不要苛刻 lmao

标签: javascript

解决方案


您可以尝试将字符串数组转换为集合。由于集合不能有重复项,因此您将获得大小差异。因此,计。

const countDuplicates = (str) => {
    const arr = str.split(''); 
    const arrSet = new Set(arr);
    return arr.length - arrSet.size 
}

console.log(countDuplicates('abcdac')

输出:2

编辑:我错过了您询问返回重复字符的部分。为了那个原因:

const getDuplicateChars = (str) => { 

const arr = str.split('');
const duplicateChars = [];
const sortedArr = [...arr].sort();

sortedArr.forEach((elem, index) => {
    if(sortedArr[index+1] === elem) {
        duplicateChars.push(elem);
    }
});
return duplicateChars;
}

let duplicateChars = getDuplicateChars('abcdac');

推荐阅读