Let's check, many times (or few) arises the need to remove duplicate elements given in an array, I don't know... it can be because you have to prin...
For further actions, you may consider blocking this person and/or reporting abuse
The first one is sexier
The last two are problematic because you are essentially calling a for loop in a for loop which heavily increases how long the algorithms are going to take.
Using a set to remove duplicates is a great to solve this problem.
Don't forget reduce!
chars.reduce((acc, char) => acc.includes(char) ? acc : [...acc, char], []);
This is my preferred way,. I don't like using Sets
Complexities are:
2 and 3 are O(N^2)
So 1 should always be used imho.
This is great for most situations, using a Map -- my personal testing has found that arrays up to a certain length still perform better with reduce, etc than Maps, but beyond N values (which I can't recall the exact amount and I'm sure it varies on the types), Map's absolutely crush them because the op is O(n), as noted by DevMan -- just thought it was worth noting.
Or
let chars = ['A', 'B', 'A', 'C', 'B'];
let uniqueChars = [];
chars.forEach((e) => {
if (!(e in chars)) {
uniqueChars.push(e);
}
});
console.log(uniqueChars);
Shouldn't that be
if (!(e in uniqueChars)) {
?For big array of objects, use reduce and Map:
[{a: 1, b: 2}, {a: 2, b: 3}, {a: 1, b: 2}].reduce((p, c) => p.set(c.a, c), new Map()).values()
Imagine having array of objects with n props having only to remove duplicate props with m same properties where m < n and use first of the two or more duplicates of the same unique constraint rule.
That's where science begins. Would be much more interested in hearing different solutions to this topic.
Then write your own article an stop trying to sound smart on someone else's post
Simply use reduce and Map:
[{a: 1, b: 2, c: 3}, {a: 2, b: 3, c: 4}, {a: 1, b: 2, c: 5}].reduce((p, c) => p.set([c.a, c.b].join('|'), c), new Map()).values()
Edit: For selecting the first value, use Map.has before setting the value.
Thanks for the article. This is useful.
What is an efficient way to perform this operation "in place"?
I usually do it using Define, it seems to be more performative. Could you show the performance of each of these modalities?
Thank you for the article!
I wanna remove from array of object where multiple object contain same id but I wanna remove only first one. How?