获取数组中多次存在的值列表

Her*_*rig 5 javascript arrays loops

我必须获取数组中多次存在的值的列表。这是当前的代码,但正如您所看到的,它太复杂了。

var arr = [1, 2, 3, 4, 2, 3];
var flag = {}
var exist2arr = [];

for(var i = 0; i < arr.length; i++){
  for(var j = 0 ; j < arr.length; j ++){
     if(i !=j && arr[i] == arr[j]){
       if(!flag[arr[i]])
         exist2arr.push(arr[i]);
       flag[arr[i]] = 1;
     }
  }
}
console.log(exist2arr);
Run Code Online (Sandbox Code Playgroud)

有没有其他方法(使用javascript内置函数的简单代码)来实现这一点?任何形式的帮助表示赞赏。

Phi*_*hil 6

您可以根据第一个索引和当前索引不相等的值来过滤数组,然后通过Set

const arr = [1, 2, 3, 4, 2, 3, 2, 3, 2, 3, 2, 3]; // added in some extras

const filtered = arr.filter((v, i) => arr.indexOf(v) !== i)
const unique = new Set(filtered)

console.info(Array.from(unique)) // using Array.from so it can be logged
Run Code Online (Sandbox Code Playgroud)