In this post i'm going to remove duplicates element from array,i will try with multiple approaches to remove duplicates element from array.
Method 1
Using Set
const array = ["a","b","c","d","a","c","e","f"];
const m1 = [...new Set(array)];
console.log(m1);
// ["a", "b", "c", "d", "e", "f"]
Method 2
Using object
const array = ["a","b","c","d","a","c","e","f"];
let obj = {};
for (let arr of array){
obj[arr]=true;
}
console.log(Object.keys(obj));
// ["a", "b", "c", "d", "e", "f"]
Method 3
Using Loop
const array = ["a","b","c","d","a","c","e","f"];
const m3 = [];
for(var i = 0;i<array.length;i++){
const arr = array[i];
m3.indexOf(arr) === -1 && m3.push(arr);
}
console.log(m3)
// ["a", "b", "c", "d", "e", "f"]
Method 4
Using Filter
const array = ["a","b","c","d","a","c","e","f"];
const m4 = array.filter((el,index)=>array.indexOf(el) == index);
console.log(m4);
// ["a", "b", "c", "d", "e", "f"]
Top comments (4)
Another 'using object' one with
reduce
:yeah great !
Best answer:
stackoverflow.com/a/1838755/104380
Not even close.
For starters, it does not solve the proposed problem (filtering out duplicates); it returns the list of nonunique items.
Second, the time complexity of that solution is O(n2) . For an array of size n , the
filter
function needs to run (n−i) iterations for each element at index i .Even if the goal is to return the list of nonunique items - which, again, is not the case here - a solution with O(n2) time complexity is most definitely not the "best".