El bucle for es una de las instrucciones más usadas para ejecutar cierta lógica de forma repetida.
En JavaScript, consta de la palabra clave for, una cabecera entre paréntesis y un bloque de código que contiene el cuerpo del bucle entre llaves.
for (initialization; condition; step) {
// code that is executed repeatedly as long as the condition is true
}
La inicialización normalmente prepara una variable contadora, la condición comprueba si el bucle debe continuar o detenerse y el paso incrementa el contador al final de cada repetición. Las distintas partes de la cabecera se separan con puntos y coma.
const list = ['a', 'b', 'c'];
for (let i = 0; i < list.length; i++) {
// code that should be executed for each item list[i]
}
Definir el paso suele hacerse con el operador de incremento o decremento de JavaScript, como muestra el ejemplo anterior.
Estos operadores modifican una variable in situ.
++ suma uno a un número, -- resta uno a un número.
let i = 3;
i++;
// i is now 4
let j = 0;
j--;
// j is now -1
Eres un ávido observador de aves que lleva un registro de cuántos pájaros han visitado tu jardín. Normalmente, usas un recuento en un cuaderno para contar los pájaros, pero quieres trabajar mejor con tus datos. Ya has digitalizado los recuentos de pájaros por día de las últimas semanas que tenías en el cuaderno.
Ahora quieres determinar el número total de pájaros que contaste, calcular el recuento de pájaros de una semana concreta y corregir un error de conteo.
Para practicar, usa un bucle for para resolver cada una de las tareas siguientes.
Empecemos analizando los datos para obtener una visión general. Averigua cuántos pájaros has contado en total desde que empezaste tus registros.
Implementa una función totalBirdCount que acepte un objeto similar a un array que contenga el recuento de pájaros por día.
Debe devolver el número total de pájaros que has contado.
birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
totalBirdCount(birdsPerDay);
// => 34
Ahora que ya tienes una idea general de tus cifras de recuento de pájaros, quieres hacer un análisis más detallado.
Implementa una función birdsInWeek que acepte un objeto similar a un array con los recuentos de pájaros por día y un número de semana.
Devuelve el número total de pájaros que contaste en esa semana concreta.
Puedes dar por supuesto que las semanas siempre se registran completas.
birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
birdsInWeek(birdsPerDay, 2);
// => 12
Te has dado cuenta de que, durante todo el tiempo que estuviste intentando llevar el registro de los pájaros, había uno escondido en un rincón lejano del jardín. Has averiguado que este pájaro pasaba siempre un día sí y otro no en tu jardín. No sabes exactamente dónde estaba entre esos días, pero desde luego no estaba en tu jardín. Tu intuición de observador de aves también te dice que el pájaro estaba en tu jardín el primer día que registraste en tu array.
Con esta nueva información, escribe una función fixBirdCountLog que reciba como argumento un objeto similar a un array con los pájaros contados por día. Debe corregir el error de conteo modificando el array dado.
birdsPerDay = [2, 5, 0, 7, 4, 1];
fixBirdCountLog(birdsPerDay);
// => [3, 5, 1, 7, 5, 1]
Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.