How to Remove Duplicate Values from JavaScript Array

Having duplicate values in a JavaScript array can sometimes cause issues when performing certain operations or calculations. In this article, we will explore different ways to remove duplicate values from a JavaScript array using various techniques and code examples.

Method 1: Using Set

The easiest way to remove duplicate values from an array is by using the Set object. The Set object allows you to store unique values of any type, ensuring that no duplicates are present in the collection. Here's an example:

            
                var names = ["Mike", "Matt", "Nancy", "Adam", "Jenny", "Nancy", "Carl"];
                var uniqueNames = [...new Set(names)];
                console.log(uniqueNames);
                // Output: ["Mike", "Matt", "Nancy", "Adam", "Jenny", "Carl"]
            
        

In the code above, we create a Set object using the spread syntax (...new Set(names)) to convert it back to an array. This automatically removes any duplicate values, giving us a new array with only unique values.

Note that the Set object only works for primitive values like strings or numbers. If you have an array of objects and want to remove duplicates based on a specific property, you will need to use a different approach.

Method 2: Using Array Filter

If you want to remove duplicate values from an array of objects based on a specific property, you can use the Array filter() method. Here's an example:

            
                var people = [
                    { name: "Mike" },
                    { name: "Matt" },
                    { name: "Nancy" },
                    { name: "Adam" },
                    { name: "Jenny" },
                    { name: "Nancy" },
                    { name: "Carl" }
                ];
                
                var uniquePeople = people.filter((person, index, self) =>
                    index === self.findIndex((p) => p.name === person.name)
                );
                
                console.log(uniquePeople);
                // Output: [{ name: "Mike" }, { name: "Matt" }, { name: "Nancy" }, { name: "Adam" }, { name: "Jenny" }, { name: "Carl" }]
            
        

In the code above, we use the filter() method to create a new array that only contains objects whose name property is unique. The findIndex() method is used to compare the current object with the previous objects in the array, returning the index of the first occurrence. If the index matches the current index, it means that it's a unique object and should be included in the output array.

Method 3: Using a Temporary Object

Another way to remove duplicate values from an array is by using a temporary object to keep track of the unique values. Here's an example:

            
                var names = ["Mike", "Matt", "Nancy", "Adam", "Jenny", "Nancy", "Carl"];
                var uniqueNames = [];
                var tempObj = {};
                
                for (var i = 0; i < names.length; i++) {
                    if (!tempObj[names[i]]) {
                        tempObj[names[i]] = true;
                        uniqueNames.push(names[i]);
                    }
                }
                
                console.log(uniqueNames);
                // Output: ["Mike", "Matt", "Nancy", "Adam", "Jenny", "Carl"]
            
        

In the code above, we loop through each element in the array and check if it exists as a property in the temporary object (tempObj). If it doesn't, we add it to the object and push it to the uniqueNames array. This ensures that only unique values are included in the final array.

Conclusion

Removing duplicate values from a JavaScript array is a common task that can be accomplished using different techniques. We covered three methods: using the Set object for primitive values, using the filter() method for array of objects, and using a temporary object to keep track of unique values. Depending on your specific use case and the type of data you're working with, you can choose the most appropriate method to solve the problem.