我正在寻找一种确定JavaScript数组中哪个元素的出现次数最多的优雅方法(mode)。
例如,在
['pear', 'apple', 'orange', 'apple']
该'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; }