JSFiddle - React, Tailwind, and code Playground
JavaScript
var input = [[1, 2, 3], [1, 2, 4], [1, 2, 5]];
var occ = {};
// on compte les occurences O(n)
for (var iCollection = 0; iCollection < input.length; ++iCollection) {
var collection = input[iCollection];
for (var iElt = 0; iElt < collection.length; ++iElt) {
if (!occ[collection[iElt]]) {
occ[collection[iElt]] = 0;
}
occ[collection[iElt]] += 1;
}
}
console.log(occ);
// on compile le plus grand commun O(n)
var res = [];
var inter = [];
for (var m in occ) {
if (occ[m] === input.length) {
inter.push(m);
}
}
if (inter.length) res.push(inter);
// on compile le reste O(n)
for (var m in occ) {
if (occ[m] != input.length) {
res.push(m);
}
}
// affichage du résultat
strRes = "{";
for (var i = 0; i < res.length; ++i) {
strRes += "{";
for (var j = 0; j < res[i].length; ++j) {
strRes += res[i][j] + ", ";
}
strRes += "},";
}
strRes += "}";
console.log(strRes);