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

341
Vistas
Cómo eliminar solo uno de los caracteres repetidos en una cadena usando JavaScript

Tengo una cadena con caracteres repetidos como: 'CANADA' .
Y estoy tratando de obtener la cadena que eliminó solo uno de los caracteres repetidos:
'CNADA', 'CANDA', 'CANAD' .

Lo probé con subString, pero devolvió la parte de la cadena eliminada. También lo probé con reduce, pero terminó eliminando todos los caracteres repetidos ('CND').

¿Cuál es la forma de eliminar solo un carácter a la vez? Los resultados se pueden almacenar en una matriz. (resultados = ['CNADA', 'CANDA', 'CANAD'])

Gracias.

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

0

Puede lograr esto utilizando el segundo parámetro de String#indexOf() que especifica la posición desde la cual iniciar la búsqueda. Aquí en un ciclo while , y usando un Set para eliminar los duplicados antes de regresar.

 function getReplaceOptions(str, char) { let res = [], i = str.indexOf(char, 0); while (i !== -1) { res.push(str.substring(0, i) + str.substring(++i)); i = str.indexOf(char, i) } return Array.from(new Set(res)) } console.log(getReplaceOptions('CANADA', 'A')); console.log(getReplaceOptions('Mississippi', 's'));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Primero puede contar todas las ocurrencias en la cadena. Más tarde, puede iterar sobre el script y, si el recuento es mayor que 1, puede eliminar ese carácter.

 const theString = 'CANADA' const letterCount = {} const resultArr = [] for (var i = 0; i < theString.length; i++) { const theLetter = theString.charAt(i) if(letterCount[theLetter]){ letterCount[theLetter] = letterCount[theLetter] + 1 } else{ letterCount[theLetter] = 1 } } console.log(letterCount) for (var i = 0; i < theString.length; i++) { const theLetter = theString.charAt(i) if(letterCount[theLetter] && letterCount[theLetter] > 1){ resultArr.push(theString.substr(0, i) + theString.substr(i + 1)) } } console.log(resultArr)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría usar un poco de magia de Array para eliminar caracteres duplicados:

 function removeDuplicateCharacters(value) { // convert string to array and loop through each character return String(value).split('').filter(function(char, index, all) { // return false if char found at a different index return (index === all.indexOf(char)); }) .join(''); // convert back to a string }
 // returns `CAND` removeDuplicateCharacters('CANADA'); // returns `helo wrd` removeDuplicateCharacters('hello world');
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