javascript - 显示js数组中最频繁项的最后一个元素

标签 javascript arrays

我有一个函数可以定义数组中出现频率最高的项目并返回它。它按预期工作,但如果有两个或多个具有相同频率得分的项目,我想显示最后一个项目。例如,我有一个数组 ['grape', 'lemon', 'apple', 'grape', 'lemon'],函数将返回 'grape' 和在这种情况下,我的目标是返回 'lemon'。我尝试使用 if 语句,但没有找到正确的方法。这是js代码:

let fruits = ['grape', 'lemon', 'apple', 'grape', 'lemon'];

(function(array) {
  let mf = 1;
  let m = 0;
  let item;
  for (let i = 0; i < array.length; i++) {
    for (let j = i; j < array.length; j++) {
      if (array[i] == array[j])
        m++;
      if (mf < m) {
        mf = m;
        item = array[i];
      }
    }
    m = 0;
  }
  console.log(item);
  return item;
})(fruits);

如有任何帮助,我们将不胜感激。

最佳答案

只需使用 <=而不是 <

let fruits = ['grape', 'lemon', 'apple', 'grape', 'lemon'];

(function(array) {
  let mf = 1;
  let m = 0;
  let item;
  for (let i = 0; i < array.length; i++) {
    for (let j = i; j < array.length; j++) {
      if (array[i] == array[j])
        m++;
      if (mf <= m) {
        mf = m;
        item = array[i];
      }
    }
    m = 0;
  }
  console.log(item);
  return item;
})(fruits);

关于javascript - 显示js数组中最频繁项的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835444/

相关文章:

PHP 从循环生成 Array()?

php - 将字符串数组发送到 php

javascript - 在 UIWebView 中滚动网页

javascript - 如何在Javascript中滚动半页

javascript - 页面刷新时响应路由中断

javascript - 如何使两个 tbody 元素之间的分隔线可移动

javascript - 合并对象数组内的两个对象

arrays - 如果数组中的元素匹配值,则删除它们

javascript - KnockoutJs - 推送到可观察数组中的元素不起作用

arrays - Powershell 将字符串转换为数组