Cuando trabajamos con arrays en programación, a menudo necesitamos hacer cálculos sobre todos sus elementos. Estos cálculos pueden ser encontrar el número más grande, sumar todos los elementos, calcular un promedio, etc. A esto lo llamamos agregación.
La agregación no requiere aprender una nueva sintaxis, pero sí influye en la manera en que diseñamos nuestros algoritmos. En esta lección, vamos a explorar dos operaciones fundamentales de agregación:
- Encontrar el valor máximo en un array.
- Calcular la suma de los elementos de un array.
Encontrar el valor náximo
🌡️ Imagina que tienes una lista de temperaturas registradas durante la semana y necesitas saber cuál fue la más alta. Para encontrar el valor máximo en un array, necesitamos comparar cada número con el actual mayor.
⏬ Veamos cómo hacerlo en código:
const calculateMax = (coll) => {
// Si el array está vacío, no hay un valor máximo posible
if (coll.length === 0) {
return null;
}
// Suponemos inicialmente que el máximo es el primer elemento
let max = coll[0];
// Recorremos el resto del array (desde el segundo elemento en adelante)
for (let i = 1; i < coll.length; i += 1) {
const currentElement = coll[i];
// Si encontramos un número mayor, actualizamos el máximo
if (currentElement > max) {
max = currentElement;
}
}
return max;
};
console.log(calculateMax([])); // => null
console.log(calculateMax([3, 2, -10, 38, 0])); // => 38
Explicación
- Suponemos que el primer número del array es el mayor (
max = coll[0]). - Recorremos el array desde el segundo elemento para compararlo con
max. - Si encontramos un número más grande, actualizamos
max. - Si el array está vacío, devolvemos
nullpara evitar errores.
| Caso | Resultado |
|---|---|
calculateMax([]) |
null |
calculateMax([3, 2, -10, 38, 0]) |
38 |
¿Por qué no usamos 0 como valor inicial de max?
Supongamos que los números en el array son todos negativos: [-5, -2, -8]. Si comenzáramos con max = 0, obtendríamos un resultado incorrecto, ya que 0 no está en el array. Por eso es más seguro usar el primer elemento como referencia inicial.
Calcular la suma de un Array
Otro cálculo común que hacemos con arrays es la suma de todos sus elementos. Esto es útil, por ejemplo, para calcular el precio total en una lista de compras.
Aquí está el código para sumar los elementos de un array:
const calculateSum = (coll) => {
// Empezamos la suma en 0
let sum = 0;
// Recorremos todos los elementos y los sumamos
for (let i = 0; i < coll.length; i += 1) {
sum += coll[i];
}
return sum;
};
console.log(calculateSum([])); // => 0
console.log(calculateSum([3, 2, -10, 38, 0])); // => 33
Explicación
- La variable
sumcomienza en0porque aún no hemos sumado nada. - Recorremos todos los números usando un bucle
for. - En cada vuelta, sumamos el número actual a
sum.
| Paso | Valor de sum |
|---|---|
| Inicialización | 0 |
sum = sum + 3 |
3 |
sum = sum + 2 |
5 |
sum = sum + (-10) |
-5 |
sum = sum + 38 |
33 |
💡 El concepto de "Elemento Neutro"
En matemáticas, existe el elemento neutro para cada tipo de operación:
- En la suma, el neutro es
0porquex + 0 = x. - En la multiplicación, el neutro es
1porquex * 1 = x. - Para la concatenación de strings, el neutro es
''(cadena vacía).
Definir correctamente el elemento neutro es crucial para evitar errores en cálculos de agregación.
Resumen
- Agregación es el proceso de calcular un valor basado en una colección de datos (ej. suma, máximo, promedio).
- Para encontrar el valor máximo, empezamos con el primer elemento y recorremos el array comparando números.
- Para sumar los números de un array, empezamos en
0e iteramos sumando cada elemento. - El elemento neutro es necesario para iniciar correctamente una agregación.
- Si no inicializamos una variable antes de una operación, podemos obtener errores con
undefined.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.