let mdcOperands = [[2, 2, 3, 5], [2, 2, 5, 5], [2, 3, 5, 5]];
function intersect(s1, s2) {
var result = new Set();
for (var x of s1)
if (s2.has(x))
result.add(x);
return result;
}
let flatOperands = mdcOperands.flat()
let repetidos = []
flatOperands.map(function(item,index){
if((flatOperands.indexOf(item) !== index) && (repetidos.indexOf(item)=== -1)){
repetidos.push(item)}
})
for (let i = 0;i<repetidos.length;i++){
mdcOperands.map((item,index)=>{
item.indexOf(repetidos[i]) === -1 ? repetidos.splice(i,1):''
})
}
let result = new Set(mdcOperands[0]);
for(var i = 1; i < mdcOperands.length; i++) {
result = intersect(result, new Set(mdcOperands[i]));
}