const removeNonUnique1 = array => {
const dict = array.reduce((acc,it) => {
if(acc[it]){
acc[it] = {...acc[it], count: acc[it].count + 1}
return acc
}
acc[it] = {value: it, count: 1}
return acc
}, {})
return Object.keys(dict).filter((it) => dict[it].count < 2)
}
const removeNonUnique2 = array => {
const cache = new Set();
const store = new Set();
for (const entry of array) {
if (cache.has(entry)) {
store.delete(entry);
} else {
store.add(entry);
cache.add(entry);
}
}
return [...store];
};
const array = new Array(1e3).fill(null).map(() => Math.floor(Math.random() * 1e3));