JavaScript: eliminar líneas repetidas

En este corto post de JavaScript te enseñaré a eliminar líneas repetidas (no de código, sino de algún texto o párrafo).

Esto nos servirá para eliminar elementos repetidos de una lista, por ejemplo un arreglo de cadenas, o de una cadena con varios saltos de línea.

Lo haremos de una manera limpia con JavaScript.

Eliminar líneas duplicadas

En este caso yo tengo una cadena con varias líneas separadas por un salto de línea, así:

app/Http/Controllers/CancionSolicitadaController.php
resources/views/canciones_solicitadas/index.blade.php
app/Http/Controllers/CancionSolicitadaController.php
app/Http/Controllers/ReporteController.php
app/Http/Controllers/ReporteController.php
resources/views/reportes/pdf.blade.php
app/Http/Controllers/ReporteController.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/reportes/pdf.blade.php
resources/views/master.blade.php
resources/views/master.blade.php

Y quiero eliminar las duplicadas, para que solo aparezcan una vez. Como es una cadena, debo convertirla a arreglo con split.

Cuando sea un arreglo ya podemos eliminar los duplicados fácilmente creando un conjunto o Set; aquí es donde ocurre la magia pues un conjunto no puede tener elementos repetidos.

const lineasComoArreglo = `app/Http/Controllers/CancionSolicitadaController.php
resources/views/canciones_solicitadas/index.blade.php
app/Http/Controllers/CancionSolicitadaController.php
app/Http/Controllers/ReporteController.php
app/Http/Controllers/ReporteController.php
resources/views/reportes/pdf.blade.php
app/Http/Controllers/ReporteController.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/reportes/pdf.blade.php
resources/views/master.blade.php
resources/views/master.blade.php`.split("\n");

const conjunto = new Set(lineasComoArreglo);

Ya tenemos el conjunto y tiene las cadenas sin repetir, ahora falta convertirlo de vuelta a arreglo, cosa que podemos hacer con Array.from:

const lineasComoArreglo = `app/Http/Controllers/CancionSolicitadaController.php
resources/views/canciones_solicitadas/index.blade.php
app/Http/Controllers/CancionSolicitadaController.php
app/Http/Controllers/ReporteController.php
app/Http/Controllers/ReporteController.php
resources/views/reportes/pdf.blade.php
app/Http/Controllers/ReporteController.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/reportes/pdf.blade.php
resources/views/master.blade.php
resources/views/master.blade.php`.split("\n");

const conjunto = new Set(lineasComoArreglo);
const arregloSinRepetidos = Array.from(conjunto);
const lineasSinRepetir = arregloSinRepetidos.join("\n");

Y después unimos el arreglo con join, usando el salto de línea como pegamento para unirlo. Ahora las líneas sin repetir son las siguientes:

app/Http/Controllers/CancionSolicitadaController.php
resources/views/canciones_solicitadas/index.blade.php
app/Http/Controllers/ReporteController.php
resources/views/reportes/pdf.blade.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/master.blade.php

Por cierto, si quisieras ordenarlas solo debes invocar a sort antes de unir con join, por defecto sort los ordenará de manera alfabética si es que son cadenas.

Bonus

En mi caso lo dejé todo en una sola línea, así (incluyendo el ordenamiento por alfabeto):

console.log(Array.from(new Set(`app/Http/Controllers/CancionSolicitadaController.php
resources/views/canciones_solicitadas/index.blade.php
app/Http/Controllers/CancionSolicitadaController.php
app/Http/Controllers/ReporteController.php
app/Http/Controllers/ReporteController.php
resources/views/reportes/pdf.blade.php
app/Http/Controllers/ReporteController.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/reportes/pdf.blade.php
resources/views/master.blade.php
resources/views/master.blade.php`.split("\n"))).sort().join("\n"))

Ya que necesito ejecutar ese fragmento de código varias veces y es mejor tenerlo simple, pero si lo vas a usar en un script o código lo mejor es separarlo en una función.

Con esto podemos quitar líneas que se repiten y además ordenarlas de manera alfabética.

Por aquí te dejo más tutoriales de JavaScript.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

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