所以,让我说我有一个由数字组成的两个数组。
var arr1 = [1,2,3,4,5];
var arr2 = [1,1,1,4,4,5,5,2];
是否可以比较这两个数组,以便在其中两个数组中得到最多的重复数字(对于这个例子,这个数字将是" 1")? 数组中可以有任意数量的任何值。
答案 0 :(得分:0)
试试这个
function maxAppearedNos()
{
var arr1 = [1,2,3,4,5,2,2,2,2,2,2,2,2];
var arr2 = [1,1,1,4,4,5,5,2];
var concatenatedArray = arr1.concat(arr2);
var macCountNos = getMaxAppearedNos(concatenatedArray);
}
function getMaxAppearedNos(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;
}
maxAppearedNos();