Contenido del curso
Primeros Pasos
- 5

¡Hola Mundo!
06:13 min - 6

Anatomía de una variable
09:23 min - 7

Tipos de datos: Mutabilidad e inmutabilidad
10:55 min - 8

Paso por valor
11:06 min - 9

Paso por referencia
07:00 min - 10

Creación de strings
11:33 min - 11

Concatenación de strings
08:31 min - 12

Manipulación de strings
12:13 min - 13

Tipo de dato primitivo: number
09:30 min - 14

Conversión a Booleanos
05:08 min - 15

Tipos de datos primitivos: null, undefined, symbol y bigint
07:28 min - 16

Conversión de tipos: Type Casting y Coercion
04:38 min - 17

Conversión de tipos explícita e implícita
12:20 min - 18

Proyecto: Crea un perfil para redes sociales con JavaScript
07:23 min
Funciones y This
- 19

Anatomía de una función
11:39 min - 20

Preguntas a Desarrolladores Senior: ¿Por qué aprender Desarrollo Web?
02:11 min - 21

Funciones vs Métodos
10:01 min - 22

Funciones puras e impuras
11:22 min - 23

Identificador this
11:38 min - 24

Métodos bind, call y apply
10:09 min - 25

Funciones flecha y enlace léxico
10:31 min - 26

Implicaciones de duplicar código
03:19 min - 27

Funciones constructoras
10:41 min - 28

10 Tipos de funciones
01:39 min - 29

Objeto window y modo estricto
07:37 min - 30

Tipos de binding
01:11 min - 31

Expresiones vs Sentencias
04:02 min - 32

Proyecto: Crea biografías de personajes con JavaScript
12:51 min
Lógica y ciclos
- 33

Operadores de comparación
06:12 min - 34

Operadores lógicos
04:33 min - 35

Ejecución condicional: if
07:45 min - 36

Proyecto: Adivina el número
09:36 min - 37

Ejecución condicional: ternario
05:24 min - 38

Ejecución condicional: switch
12:08 min - 39

Loop: for
07:31 min - 40

Loop: forEach
03:57 min - 41

Loop: for of
04:26 min - 42

Loop: for in
07:38 min - 43

Loop: while
03:56 min - 44

Loop: do while
03:13 min - 45

Proyecto: Juego adivina la palabra
15:56 min
Fundamentos de arrays y modificación
- 46

Introducción a Arrays
09:09 min - 47

Mutabilidad e inmutabiliad de Arrays
07:56 min - 48

Modificación básica del final con push(), pop()
04:33 min - 49

Ejercicio: Stack de libros
16:03 min - 50

Modificación del principio con shift(), unshift()
10:21 min - 51

Modificación avanzada con splice(), reverse(), sort(), fill()
16:37 min - 52

Proyecto: Juego de cartas
15:37 min - 53

Preguntas a Desarrolladores Senior: Estrategias y métodos de estudio
01:10 min
Iteración de Arrays
- 54

Iteración con map() y forEach()
12:53 min - 55

Filtrado y reducción con filter() y reduce()
11:34 min - 56

Ejercicio: Calificación promedio aprobatoria
05:27 min - 57

Búsqueda de elementos con find() y findIndex()
03:52 min - 58

Ejercicio: Encuentra al ganador de una rifa
11:21 min - 59

Proyecto: Análisis de transacciones
10:55 min - 60

Proyecto: Análisis de transacciones parte 2
08:01 min
Métodos específicos y Operaciones
- 61

Unir y entrelazar con concat(), spread operator y join()
12:05 min - 62

Verificación y evaluación con every() y some()
05:15 min - 63

Métodos de búsqueda con includes(), indexOf() y lastIndexOf()
07:05 min - 64

Ejercicio: Encontrando los índices
Viendo ahora - 65

Crear copias con slice()
05:28 min - 66

Spread operator: casos de uso
07:11 min
Arrays multidimencionales
Clases y Objetos
- 71

Anatomia de un Objeto
06:48 min - 72

Trabajando con objetos
12:52 min - 73

Función constructora
14:31 min - 74

¿Qué es una clase?
06:17 min - 75

Prototipos y herencias
02:15 min - 76

Herencia en la práctica
15:38 min - 77

Prototipos en la práctica
10:42 min - 78

this en JavaScript
05:36 min - 79

Proyecto: Crea una red social
12:25 min - 80

Proyecto: Crea una red social parte 2
09:00 min
Ejercicio: Encontrando los índices
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
targetes igual alelemento. - 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
includesTargetStringcomotrue.
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!