出一道有难度的js编程题并给出答案
题目:写一个函数,接收一个字符串作为参数,返回该字符串中出现次数最多的字符及其出现次数。如果有多个字符出现次数相同,则返回其中ASCII码最小的那个字符。
答案:
function getMaxChar(str) { let map = new Map(); let maxCount = 0; let maxChar = ''; for (let i = 0; i < str.length; i++) { let char = str[i]; let count = map.get(char); if (!count) { count = 0; } count++; map.set(char, count); if (count > maxCount) { maxCount = count; maxChar = char; } else if (count === maxCount && char.charCodeAt(0) < maxChar.charCodeAt(0)) { maxChar = char; } } return { char: maxChar, count: maxCount }; }
console.log(getMaxChar('abcaabc')); // {char: 'a', count: 3}

原文地址: http://www.cveoy.top/t/topic/L0T 著作权归作者所有。请勿转载和采集!