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