javascript - 查找数组中最常见的字符串因 2 个元素或相等数量而失败

标签 javascript

我使用这个算法来查找数组中最常见的字符串,唯一的问题是当数组包含两个元素或相等数量的字符串时,以下方法不起作用 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/

相关文章:

javascript - React 中使用 FileReader 的正确获取主体是什么

javascript - WordPress:在 JavaScript 中获取 block ID

javascript - 为什么 Worker 没有在 js 中定义

javascript - 具有子项的有效模型,无法使用 HasOne,因为我没有关联 ID?

javascript - 使用 window.open() 或带有 _target 属性的超链接,是否可以强制链接在新窗口而不是新选项卡中打开?

javascript - 表单输入显示图像而不是文本值

javascript - Angular 2 : View not updating on array push

javascript - jQuery 提取 token 并将其传递给 php 位置 header

javascript - 无法读取未定义的属性 'controller'

javascript - 如何使用 Uglify.js 为 Express.js 中的每个 View 连接 JavaScript