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

198
Visualizações
¿Cómo eliminar un carácter de una cadena sin usar métodos nativos ni bucles en Javascript?

Necesito eliminar un carácter a la vez de una cadena, sin usar métodos nativos o bucles. He encontrado innumerables formas de hacer esto sin métodos nativos O sin bucles, pero parece que no puedo encontrar una manera de hacerlo sin ninguno de los dos. Pude encontrar una forma de usar la recursividad para evitar bucles, pero no estoy seguro de cómo no usar el método string.slice(). Debo usar la recursividad. No, esto no es un problema de tarea, solo estoy practicando para una entrevista.

Se supone que la función cuenta cuántas veces se repite el carácter de destino (si es que se repite) en una cadena de entrada.

 const countChar = (input, target) => { if (input === '') return 0; if (input[0] === target) return 1 + countChar(input.slice(1), target); return countChar(input.slice(1), target); } console.log(countChar('hello world', 'o')); // 2 console.log(countChar('javascript', 'j')); // 1

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo principal para lo que su código actual está usando .slice() es para "recortar" su cadena para que en la próxima llamada recursiva, el primer carácter de su input sea el siguiente carácter que necesita verificar. En su lugar, puede pasar el índice del carácter actual que desea verificar, lo que le permite evitar la llamada de slice :

 const countChar = (input, target, i = 0) => { if (i >= input.length) return 0; if (input[i] === target) return 1 + countChar(input, target, i+1); return countChar(input, target, i+1); } console.log(countChar('hello world', 'o')); // 2 console.log(countChar('javascript', 'j')); // 1

Por supuesto, existen otros métodos además de .slice() que podría usar para dividir su cadena, pero estos aún implican "bucle"/iterar su cadena debajo del capó. Un ejemplo es desestructurar:

 const countChar = ([c, ...rest], target) => c ? (c === target) + countChar(rest, target) : 0; console.log(countChar('hello world', 'o')); // 2 console.log(countChar('javascript', 'j')); // 1 console.log(countChar('', 'j')); // 0

El fragmento anterior utiliza la asignación de desestructuración [c, ...rest] para extraer el primer carácter (almacenado en c ) del primer argumento pasado a su función. El ...rest toma todos los caracteres de la cadena pasada (excluyendo el primer carácter extraído) y los almacena en la variable rest .

¿El operador condicional ? : se usa para verificar si la variable c tiene un valor real (es decir, un carácter válido). c tendrá un valor falso ( undefined en nuestro caso) cuando countChar() se le pase una cadena vacía. Si c es veraz, entonces contiene un valor de carácter válido, por lo que el resultado de (c === target) + countChar(rest, target) se usa como el valor de retorno de la llamada a la función.

Aquí (c === target) se evaluará como true o false , que cuando se usa con + countChar(rest, target) convierte el valor booleano en un valor numérico, 1 si es true o 0 si es false . El : 0; significa que 0 se utiliza como valor de retorno cuando c es un valor falso (es decir, no quedan más caracteres para comprobar).

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