Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
La mejor manera de eliminar oraciones duplicadas de una matriz de oraciones en función de sus caracteres, espacios en blanco intrascendentes

Digamos que tenemos una matriz como esta

 const array = ['bic ycle drive', 'bici ycl frei', 'bicyc le dri ve', 'manace', 'bicycle drive', 'bicycle drive']

Quiero que regrese ['bic ycle drive', 'bici ycl frei', 'manace'] porque bic ycle drive, bicyc le dri ve, bicycle drive, bicycle drive son la misma oración con espacios en blanco en diferentes lugares.

Resumen: solo devuelva valores únicos, el espacio en blanco no es importante.

PD: Podemos elegir cualquiera de los duplicados.

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Desde ES6, es fácil crear matrices de valores únicos usando un Conjunto, pero en este caso necesita transformar las cadenas (eliminar espacios) para encontrar los duplicados, pero aún conserva las cadenas originales, para que pueda devolverlas. Puede hacerlo creando un Mapa con la "cadena sin espacio" como clave y la cadena original como valor. Dado que las claves de Map son únicas.

Cree un mapa usando Array.map() para generar una matriz de [string without spaces, string] . Luego, vuelva a convertir el iterador Map.values() en una matriz. Esto devolverá el último elemento de cada serie de duplicados.

 const array = ['bic ycle drive', 'bici ycl frei', 'bicyc le dri ve', 'manace', 'bicycle drive', 'bicycle drive'] const result = [...new Map( array.map(str => [str.replace(/\s+/g, ''), str]) ).values()] console.log(result)

Si desea el primer elemento de una serie de duplicados, puede usar Array.reduce() para crear el Mapa y solo asignar claves si aún no existen:

 const array = ['bic ycle drive', 'bici ycl frei', 'bicyc le dri ve', 'manace', 'bicycle drive', 'bicycle drive'] const result = [...array.reduce((acc, str) => { const key = str.replace(/\s+/g, '') return acc.has(key) ? acc : acc.set(key, str) }, new Map()).values()] console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda