WEB TUTORIALS
PRACTICE EXAMPLES
HTML REFERENCES
CSS REFERENCES
PHP REFERENCES

How to Remove Duplicate Values from a JavaScript Array

Topic: JavaScript / jQueryPrev|Next

Answer: Use the indexOf() Method

You can use the indexOf() method in conjugation with the push() remove the duplicate values from an array or get all unique values from an array in JavaScript. Here's is an example:

  • <script>    
  •     // Defining function to get unique values from an array
  •     function getUnique(array){
  •         var uniqueArray = [];
  •         
  •         // Loop through array values
  •         for(i=0; i < array.length; i++){
  •             if(uniqueArray.indexOf(array[i]) === -1) {
  •                 uniqueArray.push(array[i]);
  •             }
  •         }
  •         return uniqueArray;
  •     }
  •     
  •     var names = ["John", "Peter", "Clark", "Harry", "John", "Alice"];
  •     var uniqueNames = getUnique(names);
  •     console.log(uniqueNames); // Prints: ["John", "Peter", "Clark", "Harry", "Alice"]
  • </script>

Alternatively, you can use the newly introduced ES6 for-of loop instead of for loop to perform this filtration very easily, as demonstrated in the following example:

  • <script>    
  •     // Defining function to get unique values from an array
  •     function getUnique(array){
  •         var uniqueArray = [];
  •         
  •         // Loop through array values
  •         for(var value of array){
  •             if(uniqueArray.indexOf(value) === -1){
  •                 uniqueArray.push(value);
  •             }
  •         }
  •         return uniqueArray;
  •     }
  •     
  •     var names = ["John", "Peter", "Clark", "Harry", "John", "Alice"];
  •     var uniqueNames = getUnique(names);
  •     console.log(uniqueNames); // Prints: ["John", "Peter", "Clark", "Harry", "Alice"]
  • </script>

Check out the tutorial on JavaScript loops to learn more about the ES6 for-of loop.


Related FAQ

Here are some more FAQ related to this topic:

Your Feedback:

We would love to hear from you, please drop us a line.