En este ejemplo, ¿para qué se usa [i] y cómo se llama esta parte de la función? Estoy en un BootCamp de codificación y tengo la respuesta correcta, pero no estoy seguro de cómo funciona realmente.
function campgroundCapacity(campgrounds) { let counter = 0; for (let i = 0 ; i < campgrounds.length ; i++) { counter += campgrounds[i].partySize; } return counter; }Su función espera una variedad de objetos de campgrounds .
[i] es el "índice" de un campamento dentro de la matriz de campgrounds .
i podría tener cualquier nombre. De hecho, su código está decidiendo el nombre dentro del bucle for.
for (let i = 0 ; i < campgrounds.length ; i++) ^^^^^ i Me estás definiendo aquí!
--
Por ejemplo, si tuviera una lista de campamentos:
const myCampgrounds = [ {name: 'zion', partySize: 6}, {name: 'bryce', partySize: 12}, {name: 'yosemite', partySize: 23}];Entonces el valor de cada objeto estaría disponible en el índice:
> campgrounds[0].name <- 'zion' > campgrounds[0].partySize <- 6 > campgrounds[2].name <- 'yosemite' > campgrounds[2].partySize <- 23 En su función, está iterando sobre la matriz. Y luego está encontrando la suma de todo campground.partySize .
Los bucles ofrecen una forma rápida y fácil de hacer algo repetidamente. Un bucle for se repite hasta que una condición específica se evalúa como falsa.
Un bucle for se ve así
for ([initialExpression]; [conditionExpression]; [incrementExpression]){ statement } Entonces, en su caso, initialExpression será la variable i cuyo valor inicial será 0. La conditionExpression en su caso es cuando la variable i alcanza la longitud de la matriz de campgrounds . El incrementExpression está incrementando i en uno.
Cuando se ejecuta un bucle for, se dan los siguientes pasos:
Se ejecuta la expresión de inicialización expresiónInicial, si la hay. Esta expresión normalmente inicializa uno o más contadores de bucle, pero la sintaxis permite una expresión de cualquier grado de complejidad. Esta expresión también puede declarar variables.
Se evalúa la expresión conditionExpression. Si el valor de conditionExpression es verdadero, se ejecutan las sentencias de bucle. Si el valor de la condición es falso, el ciclo for termina. (Si la expresión de la condición se omite por completo, se supone que la condición es verdadera).
La instrucción se ejecuta. Para ejecutar varias declaraciones, use una declaración de bloque ({ ... }) para agrupar esas declaraciones.
Si está presente, se ejecuta la expresión de actualización incrementExpression.
El control vuelve al Paso 2.
Lea más sobre los bucles aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration#for_statement
En simple, i es un índice (del iterador), en el ciclo for significa que el elemento actual es 0, 1, 2, 3 para cada iteración, por ejemplo: imprimiendo todos los elementos en una matriz, podemos usar [i] como el elemento actual y console.log(array[i]) el elemento actual.