如果我们发现重复的最大出现次数,如何在JavaScript中返回字符串中字母的最大出现次数?
我需要返回字符串中字母的最大出现次数。我已经写了这本书,但它部分起作用了。我的意思是,字母的最大出现次数超过一次,然后只显示一个字母如果我们发现重复的最大出现次数,如何在JavaScript中返回字符串中字母的最大出现次数?,javascript,Javascript,我需要返回字符串中字母的最大出现次数。我已经写了这本书,但它部分起作用了。我的意思是,字母的最大出现次数超过一次,然后只显示一个字母 function maxChar(str) { let obj = {}; for (let char of str) { !obj[char] ? (obj[char] = 1) : obj[char]++; } console.log("==obj", obj); let maxChar = "&quo
function maxChar(str) {
let obj = {};
for (let char of str) {
!obj[char] ? (obj[char] = 1) : obj[char]++;
}
console.log("==obj", obj);
let maxChar = "";
let count = 0;
for (let char in obj) {
if (obj[char] >= count) {
count = obj[char];
maxChar = char;
}
}
console.log(`${maxChar} appear ${count} times`);
}
maxChar("aabbc");
我在控制台“b出现2次”中得到值。但实际上我需要在控制台中显示“a&b出现2次”。- 您可以使用
方法从输入字符串获取string.split(“”)
char数组
- 从该数组中,您可以使用
方法获得每个字母的重复计数array.reduce
- 从复制的信息中,您可以使用
和Math.max
获得最大计数并显示字母Array.forEach
函数maxChar(str){
const charArr=str.split(“”);
常量字母信息=字符减少((acc,cur)=>{
如果(acc[cur]==null){
acc[cur]=1;
}否则{
acc[cur]++;
}
返回acc;
}, {});
const maxCount=Math.max(…Object.values(letterInfo));
Object.entries(letterInfo).forEach(([letter,count])=>{
如果(计数===最大计数){
log(`${letter}出现${count}次`);
}
});
}
maxChar(“aabbc”)代码>您可以改为维护字符数组:
函数maxChar(str){
设obj={};
for(str的let char){
!obj[char]?(obj[char]=1):obj[char]++;
}
console.log(“==obj”,obj);
设maxChars=[];
让计数=0;
for(让char在obj中){
if(obj[char]>=计数){
if(obj[char]>计数){
maxChars=[char];
}否则{
maxChars.push(char);
}
计数=对象[char];
}
}
log(`${maxChars.join(&)}出现${count}次`);
}
maxChar(“aabbc”);
搜索出现次数最多的字符时,必须区分两种不同的情况:
您正在查看的角色出现的次数与当前最大值相同。然后必须将其添加到当前MaxChar的列表中
您正在查看的角色出现的频率高于当前最大值。然后,您必须清除当前MaxChar的列表,并仅将当前char添加到该列表中
让maxchars=[];
for(让char在obj中){
if(obj[char]>计数){
计数=对象[char];
maxchars=[char];
}
else if(obj[char]==计数){
maxchars.push(char);
}
}
log(`${maxchars.join('&')}出现${count}次`);
我只是更改了代码中的某些内容,它就起作用了。希望它能帮助你
function maxChar(str) {
let obj = {};
for (let char of str) {
!obj[char] ? (obj[char] = 1) : obj[char]++;
}
console.log('==obj', obj);
let maxChar = '';
let count = 0;
for (let char in obj) {
if (obj[char] > count) {
count = obj[char];
maxChar = char;
} else if (obj[char] === count) {
maxChar = `${maxChar} & ${char}`;
}
}
console.log(`${maxChar} appear ${count} times`);
}
maxChar('aabbc');