¿Cómo filtrar los valores no únicos en una array usando JavaScript?

En JavaScript, las arrays son el objeto que utiliza el índice como clave de valores. En este artículo, veamos cómo podemos filtrar todos los valores no únicos y, a cambio, obtener todos los elementos únicos y no repetitivos.

Enfoque: en la array para elementos únicos, el índice de la primera y la última aparición de los elementos debe ser el mismo; de lo contrario, si son diferentes, confirma que la array tiene el duplicado en algún otro índice de la misma array. Todos los valores no únicos deben ser detenidos por filter() y la salida debe ser valores únicos.

Método 1: Usar el método filter()

El método filter() devuelve los elementos de la array que cumplen la condición de que el índice de la primera aparición y el índice de la última aparición deben ser iguales para un elemento único. Usamos el método indexOf() para obtener la primera aparición del índice de un elemento y el método lastIndexOf() para obtener la última aparición de un elemento.

Sintaxis:

var newarr=initial_arr.filter((value ,index)=>{
  conditions with return statement;
});

Ejemplo:

Javascript

<script>
  var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
  console.log("Before filtering non unique values: " + array);
  
  var unique = array.filter((value, index) => {
    return array.indexOf(value) === array.lastIndexOf(value);
  });
  console.log("After filtering non unique values: " + unique);
</script>

Producción:

Before filtering non unique values: 1,2,2,3,4,5,6,6,7,8,8,8
After filtering non unique values: 1,3,4,5,7

Método 2: Usando el mismo principio pero usando un bucle for() .

En el bucle for, solo insertamos nuestros elementos únicos en la array, si cumple la condición de que el índice de la primera aparición y el índice de la última aparición deben ser iguales. Usamos el método indexOf() para obtener la primera aparición del índice de un elemento y el método lastIndexOf() para obtener la última aparición de un elemento.

Sintaxis:

for (let i = start; condition to i;increment or decrement) {
    instruction1;
    instruction2;
    instruction3;
    .
    .
    .
};

Ejemplo:

Javascript

<script>
  var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
  console.log("Before filtering non unique values: " + array);
  var unique = [];
  for (let i = 0; i < array.length; i++) {
    if (array.lastIndexOf(array[i]) === array.indexOf(array[i])) {
      unique.push(array[i]);
    }
  }
  
  console.log("After filtering non unique values: " + unique);
</script>

Producción:

Before filtering non unique values: 1,2,2,3,4,5,6,6,7,8,8,8
After filtering non unique values: 1,3,4,5,7

Publicación traducida automáticamente

Artículo escrito por lokeshpotta20 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 *