Necesito eliminar palabras duplicadas en una cadena, pero no los caracteres numéricos.
Aquí hay un ejemplo de texto que necesito convertir y conservar los caracteres numéricos. ¿Alguna sugerencia sobre cómo manejar esto?
Ejemplo de cadena: "Rim - Rim Black 28H 700mm x 700mm"
static removeDuplicateWords = (statement: string) => { return statement .split(" ") .filter((item, pos, self) => { return self.indexOf(item) === pos; }) .join(" "); };Resultados Actuales: - Llanta Negra 28H x 700mm
Resultados esperados: - Llanta Negra 28H 700mm x 700mm
Gracias por la ayuda
Use una expresión regular para probar si la palabra contiene un dígito.
static removeDuplicateWords = (statement: string) => { return statement .split(" ") .filter((item, pos, self) => item.match(/\d/) || self.indexOf(item) === pos) .join(" "); };A partir de su ejemplo, puede crear un conjunto de cadenas divididas y unirlas nuevamente.
console.log(Array.from(new Set("Rim - Rim Black 28H 700mm x 700mm".split(' '))).join(' ')) // print 'Rim - Black 28H x 700mm'