Array.prototype.filter()
and Array.prototype.every()
to create an array containing only the unique values, based on the comparator function, fn
.const filterNonUniqueBy = (arr, fn) =>
arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
filterNonUniqueBy( [ { id: 0, value: 'a' }, { id: 1, value: 'b' }, { id: 2, value: 'c' }, { id: 1, value: 'd' }, { id: 0, value: 'e' } ], (a, b) => a.id === b.id ); // [ { id: 2, value: 'c' } ]
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️