どの要素が最も多く出現するかを判断するエレガントな方法を探しています(モード) を JavaScript 配列に含めます。
例えば、
['pear', 'apple', 'orange', 'apple']
要素'apple'
は最も頻繁に出現する要素です。
ベストアンサー1
これは単なるモードです。これは
、最適化されていない簡単な
ソリューションです。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;
}