¿Cómo obtener todos los valores únicos (eliminar duplicados) en una array de JavaScript?

Dada una array que contiene algunos valores, la tarea es eliminar los elementos duplicados de la array.

Ejemplos:

Input: listArray = ["Manish", "Chandan", "Piyush", "Manish", "Sunil", "Chandan"];
Output: Manish, Chandan, Piyush, Sunil

Método 1: este método verificó cada valor de la array original (listArray) con cada valor de la array de salida (outputArray) donde se eliminan los valores duplicados. Si el valor actual no existe en la array de salida con valores únicos, agregue el elemento a la array de salida.

Ejemplo 1: este ejemplo genera una array única de valores de string.

<!DOCTYPE html>
<html>
      
<head>
    <title>
        Remove duplicate elements
        from array
    </title>
</head>
  
<body>
      
    <!-- Script to remove duplicate elements
    from array -->
    <script>
        var array = ["Manish", "Chandan", "Piyush",
                     "Sunil", "Pankaj", "Piyush", 
                     "Pankaj", "Tiny", "Chandan",
                     "Manish"];
                       
        var outputArray = [];
          
        // Count variable is used to add the
        // new unique value only once in the
        // outputArray.
        var count = 0;
          
        // Start variable is used to set true
        // if a repeated duplicate value is 
        // encontered in the output array.
        var start = false;
          
        for (j = 0; j < array.length; j++) {
            for (k = 0; k < outputArray.length; k++) {
                if ( array[j] == outputArray[k] ) {
                    start = true;
                }
            }
            count++;
            if (count == 1 && start == false) {
                outputArray.push(array[j]);
            }
            start = false;
            count = 0;
        }
        document.write(outputArray);
    </script>
</body>
  
</html>                    

Producción:

Manish, Chandan, Piyush, Sunil, Pankaj, Tiny

Ejemplo 2: este ejemplo devuelve los elementos únicos de la array.

<!DOCTYPE html>
<html>
      
<head>
    <title>
        Remove duplicate elements
        from array
    </title>
</head>
  
<body>
      
    <!-- Script to remove duplicate elements
    from array -->
    <script>
        var array = [100, 23, 45, 67, 45,
                    33, 34, 69, 100, 23];
                       
        var outputArray = [];
          
        // Count variable is used to add the
        // new unique value only once in the
        // outputArray.
        var count = 0;
          
        // Start variable is used to set true
        // if a repeated duplicate value is 
        // encontered in the output array.
        var start = false;
          
        for (j = 0; j < array.length; j++) {
            for (k = 0; k < outputArray.length; k++) {
                if ( array[j] == outputArray[k] ) {
                    start = true;
                }
            }
            count++;
            if (count == 1 && start == false) {
                outputArray.push(array[j]);
            }
            start = false;
            count = 0;
        }
        document.write(outputArray);
    </script>
</body>
  
</html>                    

Producción:

100, 23, 45, 67, 33, 34, 69

Método 2: Usar el método array filter(): La función arr.filter() se usa para crear una nueva array a partir de una array existente que consiste únicamente en aquellos elementos de la array dada que satisfacen una condición establecida por la función de argumento.

Sintaxis:

array.filter( function(currentValue, index, arr), thisValue )

Parámetros:

  • currentValue: Almacena el valor del elemento actual.
  • índice: Este es el índice del elemento actual que está siendo procesado por la función.
  • arr: Esta es la array en la que llamó la función .filter().
  • thisValue: se usa para decirle a la función que use este valor al ejecutar la función de argumento.

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>
        Remove duplicate elements
        from array
    </title>
</head>
  
<body>
      
    <!-- Script to remove duplicate elements
    from array -->
    <script>
        var array = ['g', 'e', 'e', 'k', 's', 'f',
                'o', 'r', 'g', 'e', 'e', 'k', 's'];
          
        var outputArray = [];
          
        function removewithfilter(arr) {
            let outputArray = arr.filter(function(v, i, self)
            {
                  
                // It returns the index of the first
                // instance of each value
                return i == self.indexOf(v);
            });
              
            return outputArray;
        }
          
        document.write(removewithfilter(array));
    </script>
</body>
  
</html>                                      

Producción:

g, e, k, s, f, o, r

Método 3: Uso del método de conjuntos : un conjunto es una colección de elementos que son únicos, es decir, ningún elemento se puede repetir. Los conjuntos en ES6 están ordenados: los elementos del conjunto se pueden iterar en el orden de inserción. Set puede almacenar cualquier tipo de valores, ya sean primitivos u objetos.

Ejemplo:

   
<!DOCTYPE html>
<html>
  
<head>
    <title>
        Remove duplicate elements
        from array
    </title>
</head>
  
<body>
      
    <!-- Script to remove duplicate elements
    from array -->
    <script>
        var array = ["DS", "Algo", "OS", "HTML", "DS",
                     "OS", "Java", "HTML", "Algo"];
          
        var outputArray = [];
          
        function removeusingSet(arr) {
            let outputArray = Array.from(new Set(arr))
            return outputArray
        }
          
        document.write(removeusingSet(array));
    </script>
</body>
  
</html>                                     

Producción:

DS, Algo, OS, HTML, Java

Publicación traducida automáticamente

Artículo escrito por Stranger1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *