// Reto: eliminar números duplicados de un arreglo.
// Entrada: [1, 2, 2, 3, 4, 4]
// Salida esperada: [1, 2, 3, 4]
// Solución 1: usando un Set.
// Un Set solo almacena valores únicos, así que eliminar duplicados
// es tan simple como crear un Set y convertirlo de nuevo en arreglo.
function quitarDuplicados(arreglo) {
return [...new Set(arreglo)];
}
// Solución 2: usando filter (útil para explicar la lógica).
// Conservamos un elemento solo si es la primera vez que aparece.
function quitarDuplicadosConFilter(arreglo) {
return arreglo.filter((valor, indice) => arreglo.indexOf(valor) === indice);
}
console.log(quitarDuplicados([1, 2, 2, 3, 4, 4])); // [1, 2, 3, 4]
console.log(quitarDuplicados(["a", "b", "a", "c"])); // ["a", "b", "c"]
console.log(quitarDuplicadosConFilter([5, 5, 5, 1])); // [5, 1]
console.log(quitarDuplicados([])); // [] (caso límite)
// Explicación:
// new Set(arreglo) descarta automáticamente los valores repetidos y el spread
// (...) lo convierte de nuevo en un arreglo. La versión con filter conserva un
// valor solo cuando su índice coincide con el primer índice donde aparece.
module.exports = { quitarDuplicados, quitarDuplicadosConFilter };