Ejercicio: Encontrando los índices

Clase 64 de 80Curso de JavaScript Desde Cero

Contenido del curso

Primeros Pasos

Funciones y This

Resumen

¿Cómo encontrar los índices de una subcadena en un array?

Descubrir los índices de un string objetivo dentro de un array de strings puede parecer una tarea sencilla, pero es una habilidad esencial en programación. Este ejercicio plantea un desafío: determinar la existencia de un string objetivo dentro de un array, retornando los índices de su primera y última aparición. Si no se encuentra, retornamos menos uno. ¡Sumérgete en esta guía para aprender cómo hacerlo!

¿Cómo iniciar el ejercicio?

Para comenzar, creamos un array de strings. En nuestro ejemplo, lo llamaremos stringArray y le asignaremos valores como "apple", "banana", "orange", "grape" y repetiremos "banana" para cumplir con el ejercicio. También definimos target, que contendrá el string objetivo que buscamos, en este caso "banana".

const stringArray = ["apple", "banana", "orange", "grape", "banana", "kiwi"]; const target = "banana";

¿Cómo crear la función que resuelve el ejercicio?

La función central para este desafío se llamará findStringIndicesInArray, la cual acepta dos parámetros: el array de strings y el string objetivo. El objetivo es retornar un objeto que contiene el índice de la primera ocurrencia, la última ocurrencia y si el string se encuentra en el array.

function findStringIndicesInArray(array, target) { // Inicialización de variables de resultado let result = { firstOccurrenceIndex: -1, lastOccurrenceIndex: -1, includesTargetString: false }; // Iteración sobre el array para encontrar el target array.forEach((element, index) => { if (target === element) { if (result.firstOccurrenceIndex === -1) { result.firstOccurrenceIndex = index; // Guardar el primer índice } result.lastOccurrenceIndex = index; // Actualizar el último índice result.includesTargetString = true; } }); return result; } const result = findStringIndicesInArray(stringArray, target); console.log(result);

¿Cómo funciona el bucle forEach para resolver el problema?

Utilizamos forEach para iterar sobre cada elemento del array. Este método nos permite aplicar una función a cada elemento. Durante la iteración:

  • Comprobamos si el target es igual al elemento.
  • Si es la primera vez que encontramos el target, almacenamos su índice.
  • Actualizamos el índice de la última ocurrencia cada vez que encontramos el target.
  • Si encontramos al menos una coincidencia, marcamos includesTargetString como true.

Al finalizar, devolvemos el objeto con los índices y la confirmación de su presencia en el array.

¿Qué resultados podemos esperar?

Ejecutando nuestra función con el array dado, obtenemos:

  • "banana" se encuentra en el array.
  • El primer índice es 1.
  • El último índice es 4.
{ firstOccurrenceIndex: 1, lastOccurrenceIndex: 4, includesTargetString: true }

Este resultado nos indica que el target aparece más de una vez y proporciona sus posiciones.

¿Qué alternativas existen para resolver el problema?

Este enfoque puede expandirse o reducirse según los requerimientos específicos o preferencias personales. Por ejemplo, podemos optimizar el código utilizando métodos como indexOf y lastIndexOf para reducir ciclos redundantes. ¡Experimenta y comenta otras estrategias que hayas implementado para este tipo de problemas!

Recuerda que en programación, la creatividad y la eficiencia son clave. ¡Sigue explorando y expandiendo tus habilidades!