Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!