// Utility function
const log = data => console.log(JSON.stringify(data));
log(`const arr1 = [1, 2, 3, 4, 5];`);
log(`const arr2 = [1, 7, 8, 9, 10];`);
log(`const arr3 = [1, 2, 3, 4, 5, 6, 7];`)
log(`const arr4 = [1, 7, 8, 9, 10];`);
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [1, 7, 8, 9, 10];
const arr3 = [1, 2, 3, 4, 5, 6, 7];
const arr4 = [1, 7, 8, 9, 10];
const times = (arrA, arrB) => 
  // Returns n if...  
  arrB.filter(n => 
    // ...n exists in arrA
    arrA.includes(n))
    // Return how many matches
    .length;
    
log(`@param: arr1, arr2`)
log(times(arr1, arr2));
log(`@param: arr3, arr4`)
log(times(arr3, arr4));
// ...Rest operator will accept an unlimited amount
const frequency = (...arrays) => {
  // Combine params into one array
  let array = [...arrays.flat()],
  min;
  // If the first param is a string...
  if (''+array[0] === array[0]) {
    /*
    ...remove it from the array and convert it into a number.
    Otherwise it's 1
    */
    min = +array.shift();
  } else min = 1;
  
  // 4. Convert Map into an array of [key, value] pairs
  return  [...array
    .reduce((grp, val) => 
      /*
      3. Set [value] on Map to the it's current value +1
      */
      grp.set(val, 
        /*
        2. Get [value] from Map, but if it doesn't exist yet then it's a 
           zero.
        */
        (grp.get(val) || 0) + 1)
        // 1. Create Map object
        , new Map()
    )]
    // 5. Return each pair that meets or exceeds min
    .filter(([key, val]) => val >= min);
}
log(`@param: arr1, arr2`);
log(frequency(arr1, arr2));
log(`@param: arr3, arr4`);
log(frequency(arr3, arr4));
log(`frequency() will accept anything in unlimited amounts`);
log(`@param: arr1, arr2, arr3, arr4, 10, 8`);
log(frequency(arr1, arr2, arr3, arr4, 10, 8));
log(`Pass first parameter as a string of a number if you want a minimum count returned`);
log(`@param: '2', arr3, arr4`);
log(frequency('2', arr3, arr4));
log(`If you want use an object instead an array pairs, use Object.fromEntries(frequency(arr1, arr2))`);
log(Object.fromEntries(frequency(arr1, arr2)));
.as-console-row::after { width: 0; font-size: 0; }
.as-console-row-code { width: 100%; word-break: break-word; }
.as-console-wrapper { min-height: 100% !important; min-width: 100%; }