在JavaScript中查找具有多个重复项的数组中的所有重复数

我们需要编写一个JavaScript函数,该函数接受一个Numbers数组,其中包含许多重复项。

函数应准备一个数组,其中包含在数组中出现多次的所有元素,然后返回该数组。

例如-

如果输入数组是-

const arr = [1, 3, 4, 3, 5, 4, 6, 8, 8];

那么输出数组应该是-

const output = [3, 4, 8];

示例

以下是代码-

const arr = [1, 3, 4, 3, 5, 4, 6, 8, 8];
const findDuplicates = (arr = []) => {
   let map = {};
   let res = [];
   for(let i = 0; i < arr.length; i++) {
      if(map[arr[i]]) {
         if(map[arr[i]] === 1) {
            res.push(arr[i]);
         }
         map[arr[i]] = map[arr[i]] + 1;
      } else {
         map[arr[i]] = 1;
      };
   };
   return res;
};
console.log(findDuplicates(arr));

输出结果

以下是控制台上的输出-

[3, 4, 8]