javascript - 从传入的字符串中计算重复项
问题描述
所以我在 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
解决方案
您可以尝试将字符串数组转换为集合。由于集合不能有重复项,因此您将获得大小差异。因此,计。
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');
推荐阅读
- c++ - Linux 进程的默认分配堆大小
- vb.net - 菜单分隔栏
- elasticsearch - 如何搜索父文档以及相关子文档的数量
- javascript - 从组件发送 this.state 到 Store 并从另一个组件检索
- asp.net-mvc - 存储过程 ADO.NET .NET Core Web API
- google-sheets - 将带有 2 个值的 Google Combo 图表与折线图相结合
- cereal - 谷物::延迟和 CEREAL_NVP?
- server - 存在反向 DNS (PTR) 问题
- c - 使用结构时出现 C 分段错误
- linux - 这个命令有什么作用?ls /bin | 排序 | 三通 /tmp/lista | wc -l