2015-05-25 2 views
-2

Итак, допустим, у меня есть два массива, которые состоят из чисел.JS: Проверьте для большинства повторяющихся чисел в массиве

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

Можно ли сравнить эти два массива, чтобы получить наиболее повторяющееся количество в двух из них (в данном примере это число будет «1»)? В массивах могут быть любые числа любого значения.

+2

возможный дубликат [Получить элемент с наибольшим вхождения в массиве] (http://stackoverflow.com/questions/1053843/get-the-element-with-the- наивысшее вхождение в массив) –

+0

Да, это возможно. –

+0

Соедините их, а затем примените ссылку Joridi Castilla sended –

ответ

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