我使用这个算法来查找数组中最常见的字符串,唯一的问题是当数组包含两个元素或相等数量的字符串时,以下方法不起作用 exp: (arr["Test","Test2"]
) 不返回任何内容
Arr["Test", "Test", "Test","Test2"]
//Should return "Test"
_correctName(array) {
const modeMap = {};
let maxElement = "";
let maxCount = 1;
for (let i = 0; i < array.length; i++) {
const element = array[i];
if (modeMap[element] == null)
modeMap[element] = 1;
else
modeMap[element]++;
if (modeMap[element] > maxCount) {
maxElement = element;
maxCount = modeMap[element];
}
}
return maxElement;
};
最佳答案
问题在于您以 1
开始 maxCount
。
如果数组中的每个元素仅出现一次,那么它们都不会超过初始 1
值。
使用从 0
开始的 maxCount
重试。
关于javascript - 查找数组中最常见的字符串因 2 个元素或相等数量而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695792/