我正在尝试编写代码,以检测函数中的哪个元素被重复以及它被重复了多少次。该代码还将忽略大小写的差异。
示例:示例
“ abcde”-> 0#没有字符重复多次
“ aabbcde”-> 2#'a'和'b'
“ aabBcde”-> 2#'a'两次出现,'b'两次出现(b
和B
)
“不可分割”-> 1#'i'出现六次
这是我的代码:
//...
let count = 0;
for(let i = 0; i < str.length; i++){
for(let j = 0; j <str.length; j++){
if(str[i] === str[j]){
count = count + 1 //Count will tally how many times each given letter is repeated
return console.log(`${str[i]} occurs ${count}`)
}
}
}
}
duplicateCount('blaaaab');
答案 0 :(得分:1)
浏览字符串并存储出现的字符数
function duplicateCount(str) {
let result = {}
for(let i = 0; i < str.length; i++) {
const char = str[i]
if(char in result) {
result[char] +=1
} else {
result[char] = 1
}
}
return result
}
console.log(duplicateCount('blaaaab'));
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in-for..in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in-输入运算符 https://www.w3schools.com/js/js_objects.asp-Javascript对象
答案 1 :(得分:0)
function repeatedCharacters(str){
try{
return str.toLowerCase().split("").sort().join("").match(/(.)\1+/g).length;
}
catch(e){
return 0;
} // if TypeError
}
console.log(repeatedCharacters("CheeecKKCaaz"))
上面的代码说明了重复的字符数,您可以对其进行修改以确定每个字符的出现。
答案 2 :(得分:0)
您可以在此处利用Set
结构并获得O(n)的结果
const word = "abcdEedutyhaaaa";
const duplicates = Array.from(word.toLowerCase())
.reduce((builder, char) => {
builder.all.has(char) ? builder.duplicate.add(char) : builder.all.add(char);
return builder;
}, { duplicate: new Set(), all: new Set() })
.duplicate
.size;
console.log(duplicates); // => 3