Remove Array Duplicates in Javascript
I worked on a project recently consuming a 3rd party API which returned duplicates in some arrays returned and i needed to remove duplicates from them.
I deemed it wise to pen down how i resolved this issue just in case someone else comes across this issue.
Using Javascript SET function
All we need do is to initialize a new set and pass in the required array we need to remove duplicates from as shown below.
const array = ["ade", "kemi", "bose", "esther", "felele", "ade"];
const uniqeSet = new Set(array);
/* this by default returns back an object of the unique value passed in the array * above which we can spread in an array.
*/
// Set {"ade", "kemi", "bose", "esther", "felele"}
const arrayResponse = [...uniqeSet];
// ["ade", "kemi", "bose", "esther", "felele"]
Alternatively you could also use Array.from() to convert your object to an array.
Using Javascript FILTER Function
The filter() method creates an array filled with all array elements that pass a test (provided as a function).
What this means is that once the conditions set is passed, it would be included in the array.
The filter also allows you to pass in some other parameters such as the index parameter which returns the position of the array element.
for example.
const arrays = ["ade", "kemi", "bose", "esther", "felele", "ade"];
const uniqueArray = arrays.filter(
(array, index) => arrays.indexOf(array) === index
);
// ["ade", "kemi", "bose", "esther", "felele"]
Using Javascript Reduce Function
This approach requires us to reduce the elements of an array, then add up the results into a final array based on the reducer function passed.
for example.
const arrayData = ["ade", "kemi", "bose", "esther", "felele", "ade"];
const arrResponse = arrayData.reduce((uniqeValue, item) =>
uniqeValue.includes(item) ? uniqeValue : [...uniqeValue, item], []);
console.log(arrResponse)
// ["ade", "kemi", "bose", "esther", "felele"]
And we are done. Hope this helps.