javascript - 获取数组中出现次数最多的元素

标签 javascript mode

我正在寻找一种优雅的方法来确定哪个元素在 JavaScript 数组中出现次数最多 ( mode )。

例如,在

['pear', 'apple', 'orange', 'apple']

'apple' 元素是最常见的元素。

最佳答案

这只是模式。这是一个快速、未优化 的解决方案。应该是O(n)。

function mode(array)
{
    if(array.length == 0)
        return null;
    var modeMap = {};
    var maxEl = array[0], maxCount = 1;
    for(var i = 0; i < array.length; i++)
    {
        var el = array[i];
        if(modeMap[el] == null)
            modeMap[el] = 1;
        else
            modeMap[el]++;  
        if(modeMap[el] > maxCount)
        {
            maxEl = el;
            maxCount = modeMap[el];
        }
    }
    return maxEl;
}

关于javascript - 获取数组中出现次数最多的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053843/

相关文章:

python - 在 Python 中的二维数组上的滑动窗口中计算模式的最有效方法是什么?

mysql - 如何从数据库计算模式

java - 如何区分Processing sketch运行的模式(Java/JS/Android)?

networking - Kafka Docker network_mode

javascript - 侧导航滑动过渡不滑出

javascript - jQuery.cookie : no update of the cookie despite a very simple code

javascript - 了解 Javascript 中 "this "关键字的基础知识

processing - Processing/Arduino中如何计算统计模式

javascript - 使用 MomentJS 将时区特定时间转换为 UTC

javascript - Angular : How to get returned value from factory