Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

340
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda