JS:检查数组中的大多数重复数字

时间:2015-05-25 09:48:32

标签: javascript

所以,让我说我有一个由数字组成的两个数组。

var arr1 = [1,2,3,4,5];
var arr2 = [1,1,1,4,4,5,5,2];

是否可以比较这两个数组,以便在其中两个数组中得到最多的重复数字(对于这个例子,这个数字将是" 1")? 数组中可以有任意数量的任何值。

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();