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

188
Vistas
Encontrar ambos personajes y ponerlos en una nueva matriz

Creé una función que pasa una cadena y un carácter. La cadena es saturday y el carácter es a .

Quiero que el resultado sea una matriz que contenga todos los números de índice donde se encuentra la letra 'a' en saturday .

Luego, la matriz termina con solo [1] . Entonces encuentra el primero sentado a el segundo índice. Probé esto cambiando el saturday por el soturday y la consola imprime la matriz con [6] .

Quiero que el resultado sea [1, 6]

Intenté poner el resultado devuelto fuera del siguiente conjunto de llaves {} pero no me gustó.

 const subLength = (str, cha) => { let result = []; for (let i = 0; i < str.length; i++) { if (str.charAt(i) === cha) { result.push(str.indexOf(cha)); return result; } } }; console.log(subLength('Saturday', 'a'));

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

0

2 pequeños problemas con tu código

  1. La declaración de retorno está en el bucle for. La primera vez que el ciclo golpea, su ciclo se detendrá y la función regresará. Es por eso que solo obtiene 1 resultado. Mueve el return fuera del bucle.

  2. Una vez que se solucione lo anterior, se dará cuenta de que su matriz ahora devolverá [1, 1] . Esto se debe a que str.indexOf(cha) siempre devolverá 1 ya que devuelve el índice de la primera a . Para solucionar esto, debe agregar el índice i a su matriz, ya que representa el índice del carácter actual.

 const subLength = (str, cha) => { let result = []; for (let i = 0; i < str.length; i++) { if (str.charAt(i) === cha) { result.push(i); } } return result; }; console.log(subLength('Saturday', 'a'));

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Qué hay de poner el return result; fuera del bucle for?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Algo como esto debería funcionar, si distingue entre mayúsculas y minúsculas

 const subLength = (str, cha) => { const chaArr = str.split(''); const result = []; chaArr.forEach((v, i) => { if (v === cha) result.push(i); }) return result }; console.log(subLength('Saturday', 'a'));
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