Módulo 3·teoria·4h
Objetivos de aprendizaje
- Crear arrays literales y acceder a sus elementos por índice.
- Usar métodos de mutación: push, pop, shift, unshift, splice.
- Usar métodos de transformación: map, filter, reduce, find, findIndex, some, every.
- Ordenar arrays con sort y su función comparadora.
- Combinar arrays con spread y concat.
Matrices y Arrays en JavaScript
Un array (o arreglo) es una colección ordenada de elementos. Los elementos pueden ser de cualquier tipo: números, strings, objetos u otros arrays.
1. Crear y acceder a arrays
javascript
// Array literal (forma más común)
const frutas = ["manzana", "pera", "uva", "kiwi"];
// Acceso por índice (empieza en 0)
console.log(frutas[0]); // "manzana"
console.log(frutas[2]); // "uva"
console.log(frutas[frutas.length - 1]); // "kiwi" (último)
// Arrays mixtos (posible pero no recomendado)
const mezcla = [1, "dos", true, null, { x: 3 }];
// Array de objetos (muy común en la práctica)
const estudiantes = [
{ nombre: "Ana", nota: 6.5 },
{ nombre: "Luis", nota: 4.0 },
{ nombre: "María", nota: 5.8 },
];2. Métodos que MUTAN el array original
javascript
const nums = [1, 2, 3];
nums.push(4); // Agrega al final → [1, 2, 3, 4]
nums.pop(); // Elimina el último → [1, 2, 3]
nums.unshift(0); // Agrega al inicio → [0, 1, 2, 3]
nums.shift(); // Elimina el primero → [1, 2, 3]
// splice: elimina y/o inserta en cualquier posición
nums.splice(1, 1); // Elimina 1 elemento en índice 1 → [1, 3]
nums.splice(1, 0, 2, 2.5); // Inserta 2 y 2.5 en índice 13. Métodos que NO mutan (retornan nuevo array)
map — transforma cada elemento
javascript
const notas = [4.5, 6.0, 5.5, 7.0];
// Multiplica cada nota por 10 para obtener porcentaje
const porcentajes = notas.map((nota) => nota * 10);
// [45, 60, 55, 70]
// Transformar array de objetos
const nombres = estudiantes.map((e) => e.nombre);
// ["Ana", "Luis", "María"]filter — filtra elementos que cumplen una condición
javascript
const aprobados = estudiantes.filter((e) => e.nota >= 4.0);
// [{ nombre: "Ana", nota: 6.5 }, { nombre: "María", nota: 5.8 }]
// Luis (4.0) también cumple >= 4.0 → también entrareduce — acumula un resultado
javascript
// Suma de notas
const sumaNotas = notas.reduce((acumulador, nota) => acumulador + nota, 0);
// 23.0
// Promedio
const promedio = sumaNotas / notas.length;
// 5.75find y findIndex
javascript
// find: retorna el PRIMER elemento que cumple la condición
const ana = estudiantes.find((e) => e.nombre === "Ana");
// { nombre: "Ana", nota: 6.5 }
// findIndex: retorna el ÍNDICE del primer elemento encontrado
const indiceAna = estudiantes.findIndex((e) => e.nombre === "Ana");
// 0some y every
javascript
// some: ¿ALGUNO cumple la condición?
const hayReprobados = estudiantes.some((e) => e.nota < 4.0);
// false
// every: ¿TODOS cumplen la condición?
const todosAprobaron = estudiantes.every((e) => e.nota >= 4.0);
// true4. Ordenar arrays
javascript
const numeros = [5, 1, 8, 3, 2];
// sort muta el array original — usar con copia
const ordenados = [...numeros].sort((a, b) => a - b); // ascendente
// [1, 2, 3, 5, 8]
const descendente = [...numeros].sort((a, b) => b - a);
// [8, 5, 3, 2, 1]
// Ordenar objetos por propiedad
const porNota = [...estudiantes].sort((a, b) => b.nota - a.nota);
// María 5.8, Luis 4.0, Ana 6.5 → Ana 6.5, María 5.8, Luis 4.05. Desestructuración y spread
javascript
// Desestructuración
const [primero, segundo, ...resto] = [10, 20, 30, 40, 50];
console.log(primero); // 10
console.log(resto); // [30, 40, 50]
// Spread — copia o combina arrays
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinado = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]
const copia = [...arr1]; // copia sin referenciar el original6. Práctica interactiva
Práctica interactiva · JavaScript