Rutas
/
JavaScript
JavaScript
/
Ejercicios
/
Los encantamientos de bucles de Elyse
Los encantamientos de bucles de Elyse

Los encantamientos de bucles de Elyse

Ejercicio de aprendizaje

Introducción

Cuando trabajas con arrays, a veces quieres ejecutar código para cada valor del array. Esto se llama iterar o recorrer el array.

Aquí veremos el caso en el que no quieres modificar el array mientras lo recorres. Para transformar arrays, consulta el concepto Transformaciones de arrays.

El bucle for

La forma más básica de iterar sobre un array es usar un bucle for, consulta el concepto Bucles for.

const numbers = [6.0221515, 10, 23];

for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23

El bucle for...of

Cuando quieres trabajar directamente con el valor en cada iteración y no necesitas el índice en absoluto, puedes usar un bucle for...of.

for...of funciona como el bucle for básico mostrado arriba, pero en lugar de tener que lidiar con el índice como variable del bucle, se te proporciona el valor directamente.

const numbers = [6.0221515, 10, 23];

// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
  console.log(number);
}
// => 6.0221515
// => 10
// => 23

Al igual que en los bucles for normales, puedes usar continue para detener la iteración actual y break para detener por completo la ejecución del bucle.

El método forEach

Todos los arrays incluyen un método forEach que se puede usar para recorrer los elementos del array.

forEach acepta un callback como parámetro. La función callback se llama una vez por cada elemento del array. El elemento actual, su índice y el array completo se pasan al callback como argumentos. A menudo solo se usa el elemento actual o el índice.

const numbers = [6.0221515, 10, 23];

numbers.forEach((number, index) => console.log(number, index));
// => 6.0221515 0
// => 10 1
// => 23 2

No hay forma de detener la iteración una vez que se ha iniciado el bucle forEach. Las instrucciones break y continue no existen en este contexto.

Instrucciones

Como maga en ciernes, Elyse necesita analizar su baraja de muchas maneras distintas. Para no complicarse, solo usa cartas con valores del 1 al 10.

1. Determina cuántas cartas de un tipo concreto hay en la baraja

Elyse quiere saber cuántas cartas de un tipo concreto tiene en su baraja.

Escribe una función cardTypeCheck que reciba dos parámetros: un array de cartas (la baraja de Elyse) y el tipo de carta que hay que contar.

Note

La función debe usar forEach y devolver el número de cartas del tipo indicado que hay en la baraja.

const cardType = 3;
cardTypeCheck([1, 2, 3, 4], cardType);
// => 1

2. Determina cuántas cartas impares o pares hay

Para otro truco, Elyse necesita saber cuántas cartas impares o pares hay en su baraja.

Implementa una función determineOddEvenCards que reciba dos parámetros: un array de cartas (la baraja de Elyse) y un Boolean (true equivale a «par» y false equivale a «impar»).

Esta función debe devolver un único número: el número de cartas impares o pares que hay en la baraja (según el valor del segundo argumento).

Note

Para practicar, esta vez usa un bucle for...of en la implementación de la función.

determineOddEvenCards([1, 2, 3, 1, 5, 6], true);
// => 2

determineOddEvenCards([1, 2, 3, 1, 5, 6], false);
// => 4
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
JavaScript Exercism

¿Listo para empezar Los encantamientos de bucles de Elyse?

Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.